1.10.2. fejezet, SQLite házszám szűrés

SQLite adatbázisban tárolt házszám tartományok felbontása.

#!/usr/bin/env tclsh
package require sqlite3
 
sqlite3 conn cdata.db
set query "select * from cimtar where hazszam like '%-%' order by cimid"
#puts $query
conn eval $query values {
  #puts "$values(cimid): $values(hazszam)"
  set hsz [split $values(hazszam) '-']
  while {[regexp {^([0-9]+)} [lindex $hsz 0] mall g1] != 1 && [llength $hsz]>0} {
   set hsz [lreplace $hsz 0 0]
  }
  if {[llength $hsz]>0} {
   set fhsz [lindex $hsz 0]
   set updsql "update cimtar set hazszam='$fhsz' where cimid='$values(cimid)';"
   set prev $g1
   #puts $prev
   set hsz [lreplace $hsz 0 0]
   foreach val $hsz {
    if {$val!=""} {
     if {[regexp {^([0-9]+)} $val mall g1]} {
      #puts $mall
      set prev $g1
     } else {
      #puts $val
      set val $prev$val
     }
     set inssql "insert into cimtar (hazszam,tpid,ktid,ktipid,eov_x,eov_y) values ('$val',$values(tpid),$values(ktid),$values(ktipid),$values(eov_x),$values(eov_y));"
     puts $inssql
     #conn eval $inssql
    }
   }
   #conn eval $updsql
   puts $updsql
  } else {#puts "!!!error!!!"}
}
conn close