Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

DBExpress i generatori/generiranje PK

[es] :: Pascal / Delphi / Kylix :: DBExpress i generatori/generiranje PK

[ Pregleda: 2155 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

komplikator
Programer / sys. inženjering
CRO

Član broj: 29755
Poruke: 158
*.adsl.net.t-com.hr.

ICQ: 13387003


+8 Profil

icon DBExpress i generatori/generiranje PK28.04.2008. u 10:04 - pre 194 meseci
Pomalo se učim o DBExpress-u. i čini mi se kao najoptimističniji pristup bazama u budućnosti Delphija. Došao sam do mozgalice o generiranju ključeva na serveru u radu s Firebirdom. Klasima je uporaba generatora na serveru i triggera nad tablicom (insert trigger) koji, ako mu se pošalje null vrijednost okine novi generator, a inače će upisati proslijeđenu vrijednost.

To je sa IBX komponentama radilo ok. U afterinsert događaju dataseta mogao sam pozvati storanu proceduru i njom pročitati zadnji "pravi" generator.

A kako to funkcionira sa clientdatasetom i DBX-om? Kad radim AfterUpdateRecord datasetprovidera mogu li deltinom polju primarnog ključa isto tako storom dodijeliti neku vrijednost generatora? Odnosno, ako imam više recorda u childu i više u masteru prije nego napravim update na server mogu li isto koristiti ovakav pristup ili imate neko bolje riješenje?

Znam da je post malo zbrda-zdola no trenutno sam i ja jer sam sad malo kratak na pameti zbog kojekakvih životnih stvari.

Pa da pojednostavim pitanje, ima li smisla i mogu li i kod DBX-a koristiti mehanizam generiranja ključeva kao i kod IBX ?

I malo potpitanje: je li je tko koristio Report Manager?
God is real unless is declared as integer.
 
Odgovor na temu

komplikator
Programer / sys. inženjering
CRO

Član broj: 29755
Poruke: 158
*.adsl.net.t-com.hr.

ICQ: 13387003


+8 Profil

icon Re: DBExpress i generatori/generiranje PK05.05.2008. u 12:49 - pre 194 meseci
Ja ću ipak biti malo manje škrt u svom (ne)znanju od vas pa ću s vama podijeliti opažanja i razmišljanja.

Dakle, mučilo me što nisam mogao dodati više slogova koji su imali primarni ključ i napraviti applyupdates za sve odjednom jer mi je client dataset javljao pogrešku zbog key violationa (prije updatea svi su bili null). Shvatio sam da mi u cds-u. u tom trenutku vrijednost PK uopće ni nije bitna i jednostavno sam izbacio to polje.

Ako želim na clientu definirati novi ključ kaže mu da je :
Code:

DataSetProvider1AfterUpdateRecord  (Sender: TObject;
  SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
  UpdateKind: TUpdateKind);

begin
If UpdateKind = ukInsert then
   begin
   SQLQuery1.Close;
   SQLQuery1.Open;
   DeltaDS.FieldByName('PK_UREDAJ').NewValue := SQLQuery1.Fields[0].AsInteger;
   end;
end;

Ili neku vrijednost koju ja želim. Ako to ne koristim, serveru proslijedim PK sa null vrijednošću i trigger na serveru sam dodijeli novu vrijednost generatora.


I sve šljaka i sve ok kod takvog pristupa i kod višestrukih inserta.

Sad se idem baciti na istraživanje, može li se takva shema primjeniti u višestrukim master/detail vezama gdje bi sve inserte poslao u bazu odjednom, bez da prvo u bazu pošaljem PK za mastere.

BTW, sve više mi se sviđa dbexpress i cds, osobito mogućnost indexiranja i sortiranja po bilo kojem polju u cds-u. što mi konačno riješava sort i pretraživanja u običnom dbgridu.


God is real unless is declared as integer.
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: DBExpress i generatori/generiranje PK05.05.2008. u 15:26 - pre 194 meseci
Ako ces raditi sa Firebirdom, kupi FibPlus komponente. Vrede svakog evra.
Imas resene generatore, imas CDS, imas brzi native pristup bazi podataka,
sve servise (backup, restore, security, itd...) i mnogo drugih korisnih opcija.
 
Odgovor na temu

komplikator
Programer / sys. inženjering
CRO

Član broj: 29755
Poruke: 158
*.adsl.net.t-com.hr.

ICQ: 13387003


+8 Profil

icon Re: DBExpress i generatori/generiranje PK06.05.2008. u 06:43 - pre 194 meseci
Znam za FIBPlus komponente, probao sam ih davnih dana i sve stoji, zbilja su odlične. No odlučio sam se na dbExpress, na soluciju da umjesto FB kod jačih zahtjeva mogu postaviti i pgSql, a s vremenom aplikaciju podići na MIDAS i voziti je troslojno, iz srednjeg sloja se vezati na web sloj, raditi web servise i sl. Zato mi je u ovom projektu dbExpress idealan. K tome, dbExpress mi je novi i želim ga dobro naučiti i primjeniti (prije nego skroz odlepršam u svijet Jave kad se Delphi era privede kraju).

Inače, nije problem ni ovakvo funkcioniranje generatora. Meni je ovo sasvim ok i imam sve što treba. Više me interesiraju sami "mehanizmi" i par tih detalja što se događa kad se proba nešto specifično.

Hvala za hint!
God is real unless is declared as integer.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: DBExpress i generatori/generiranje PK

[ Pregleda: 2155 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.