[ svrle @ 30.03.2007. 09:55 ] @
Zamislite nekakvu aplikaciju, koja koristi FB embedded bazu (u folderu aplikacije nalaze se fbembedded.dll i odgovarajuća baza podataka). Vremenom, kako se aplikacija menja, moguće je da se ukaže potreba da se izvrši update postojeće baze podataka - dodavanje novih tabela, novih kolona i sl. Meni se čini kao najnormalnije rešenje da se klijentu pošalje sql skripta koja će izvršiti update baze. Problem je u tome što klijent nema isql.exe, jer on ne dolazi uz embedded verziju FB-a. Moje pitanje je: kako izvršiti sql skriptu na klijentskoj mašini iz klijentske aplikacije koristeći samo FB API (ili neki wrapper oko njega, svejedno)? Ja inače koristim IBPP u razvoju C++ aplikacija, ali učitavanje skripte u IBPP::Statement objekat i njegovo izvršavanje jednostavno ne radi, jer očigledno me može da "proguta" više od jednog upita/komande, a u skripti ih ima, naravno, proizvoljno mnogo.
[ savkic @ 02.04.2007. 13:44 ] @
> dolazi uz embedded verziju FB-a. Moje pitanje je: kako izvršiti sql skriptu na
> klijentskoj mašini iz klijentske aplikacije koristeći samo FB API (ili neki wrapper
> oko njega, svejedno)?

Direktan način ne postoji, mnoge Delphi (C++Builder) komponente parsiraju skript i izdvajaju pojedine komande i onda ih izvrsavaju jednu po jednu. Jedino i da ti nešto tako uradiš, ako ti kontrolišeš taj skript onda je još lakše, za separator komandi odabereš neki nestandardni karakter i nećeš imati problema sa parsiranjem.
[ svrle @ 02.04.2007. 17:17 ] @
Citat:
savkic: Direktan način ne postoji, mnoge Delphi (C++Builder) komponente parsiraju skript i izdvajaju pojedine komande i onda ih izvrsavaju jednu po jednu. Jedino i da ti nešto tako uradiš, ako ti kontrolišeš taj skript onda je još lakše, za separator komandi odabereš neki nestandardni karakter i nećeš imati problema sa parsiranjem.


Hvala, Igore. Ja sve vreme u glavi imam SQLDMO koji to može da obavi, pa sam se očigledno malo zaleteo kad sam se prihvatio Firebirda ;-)
[ savkic @ 02.04.2007. 18:34 ] @
Zapravo sad mi pade na pamet nova FB 2.0 komanda EXECUTE BLOCK, imam utisak da bi ona mogla da obavi posao, svakako probaj.
[ svrle @ 04.04.2007. 22:21 ] @
Citat:
savkic: Zapravo sad mi pade na pamet nova FB 2.0 komanda EXECUTE BLOCK, imam utisak da bi ona mogla da obavi posao, svakako probaj.


Ne, to nije to, ali tvoj predlog o sopstvenom parseru i sopstvenom separatoru komandi sam realizovao i pokazalo se da je to sasvim zadovoljavajuće rešenje.