1.10.1. fejezet, Címtár feltöltése SQLite adatbázisba

Szöveg fájl feltöltése SQLite adatbázisba

#!/usr/bin/env tclsh
package require sqlite3
 
proc dict {name table idfield fields vals} {
 set query "select $idfield from $table where name='$name'"
 global conn
 puts $query
 conn eval $query values {
  return $values($idfield)
 }
 set query "insert into $table ($fields) values ($vals)"
 puts $query
 conn eval $query
 return [conn last_insert_rowid]
}
 
sqlite3 conn cdata.db
while { [gets stdin line]>=0 } {
 if {[regexp {"([0-9]*)","([^"]*)","([^"]*)","([^"]*)","([^"]*)",([0-9.]*),([0-9.]*),([0-9]*),([0-9]*)} $line mall id telep kter ktertip hszam eovx eovy submapid szakaszid ]} {
  puts "$id $telep"
  set tpid [dict $telep "telepulesek" "tpid" "name,ksh" "'$telep',$id"]
  set ktid [dict $kter "kteruletek" "ktid" "name" "'$kter'"]
  set ktipid [dict $ktertip "ktertip" "ktipid" "name" "'$ktertip'"]
  set query "insert into cimtar (tpid,ktid,ktipid,hazszam,eov_x,eov_y) values ($tpid,$ktid,$ktipid,'$hszam',$eovx,$eovy)"
  puts $query
  conn eval $query
 }
}
conn close