# # # servis.prg - přesun hodnot Servis z tabulek v databázi Access do Interbase, zároveň konsolidace ortogtafických # variant, vytváří se obří skript o desítkách tisíc řádků a ten se pak pomalu interpretuje. Použije se # jednou na řízený přesun hodnot. # set Kdo,$(User) if or,@Kdo = ladouch,@Kdo = stsacra then goto Smis _quit Sorry, to nesmite. Smis: progress.create Servis progress.begin Seznam progress.tell Vytvářím sql script na aktualizaci tabulky Sluzba ... _call Seznam progress.tell Seznam hotov ... progress.tell Provádím aktualizaci po záznamech, bude to trvat ... _call Aktualizace progress.tell Hotovo. progress.end true progress.destroy true exit Seznam: f.create c:\tmp\servis.sql set X,0 connect DigiMemo// start.sql select distinct servis,kmen from digiskoky where servis is not null and kmen is not null LoopSeznam: clear.more servis,kmen ?getsql EndLoopSeznam if or,Sedlec prefix @Servis,SÚ prefix @Servis,Lito prefix @Servis,BR prefix @Servis,ESS prefix @Servis,Hrdina prefix @Servis then set Servis,PH if or,ciz prefix @Servis,Con prefix @Servis,Datt prefix @Servis,I prefix @Servis,RMB prefix @Servis,Moto prefix @Servis then set Servis,- if or,RDN prefix @Servis,Data prefix @Servis,Datla prefix @Servis,Soft prefix @Servis then set Servis,DS if JČ prefix @Servis then set Servis,JC if @Servis = ZČ then set Servis,ZC if @Servis = VČ then set Servis,VC _sload !$(Kmen) _returnatom trim _Atom f.write !update Sluzba set Servis='$(Servis)' where Zarizeni='$(_Atom)'; _returnatom trim _Atom if !@_Atom <> void then f.write update Sluzba set Servis='$(Servis)' where Zarizeni='$(_Atom)'; inc X mod X,100,Y if !@Y = 1 then progress.tell Zpracovano $(X) záznamů DigiMemo goto LoopSeznam EndLoopSeznam: stopsql f.close connect _return Aktualizace: connect ?g.open c:\tmp\servis.sql,Quit set X,0 LoopAktualizace: ?g.read Command,EndLoopAktualizace quietly.sql.script !$(Command) inc X mod X,100,Y if !@Y = 1 then progress.tell Provedeno $(X) příkazů UPDATE ... goto LoopAktualizace EndLoopAktualizace: g.close Quit: _return