[ Bojann @ 17.05.2004. 13:07 ] @
Evo pokusavam da pocnem da radim nesto sa dbexpressom, ali sam zapeo vec na prvom koraku. Postavio sam SQLConection (koja mi je povezana na interbase bazu), onda jednu SQLTable, i datasource i dbgrid za prikaz podataka iz tabele. Sve sam to povezao.
Ovde nema komponente poput one iz IBX dela: IBTransaction, pa ne znam kako to da nadoknadim jer mi stalno prijavljuje gresku kad "Operation not allowed on a undirectional dataset", kad god pokusam da aktiviram tabelu.Cuo sam za TTransactionDesc, ali ne znam gde je.
[ srdjandakic @ 17.05.2004. 15:14 ] @
Ne moze tako u dbExpress.
Pronadji na internetu sta ta greska znaci i zbog cega se javlja.

Grid -> TDataSource -> TClientDataSet -> TDataSetProvider -> TSqlTable/TSqlQuery -> TSqlConnection -> ...baza

Alternativno mozes da koristis i TSimpleDataSet
[ Bojann @ 17.05.2004. 20:03 ] @
Postoji li neka kraca putanja. Ovo je bas komplikovano. I gde su tu transakcije?
[ morlic @ 25.05.2004. 09:44 ] @
Deluje komplikovano na prvi pogled ali je sve tako podeseno da je dovoljno komponente postaviti i povezati medjusobno. Ovakav redosled i broj komponenti je potreban zbog troslojne arhitekture (Cak ima tu jos nekih komponenti koje je moguce ubaciti izmedju, ali to je druga tema).

Transakcije se u DBExpress-u aktiviraju na dva nacina: implicitno i eksplicitno. Implicitno je kada napravis onaj redosled sto smo pomenuli, dodas na formu kontrole, otvoris upit korisnik menja podatke i u jednom trenutku ti zelis da upises podatke koji su promenjeni u bazu. Tada zoves TClientDataSet.ApplyChanges(0) i tu se transakcija automatski startuje za te izmene i automatski se zavrsava.

Drugi nacin je da ti sam preko SQLConnection komponente startujes transakciju, ali onda moras i sam da je zavrsis.

Obe varijante se koriste u praksi i imaju specificnu upotrebu.