Tak som si spojazdnil TIBDataset a:
// Trigger dosadí hodnotu, ale až po nesmyslné kontrole komponent.
Podľa mňa to nie je pravda. Primárny kľúč je automaticky NOT null. Kontrolu nevykonáva Trigger, ale samotný komponent. Riešením je nastaviť pre primárny kľúč a jemu podobných Required := False; Samotné odstránenie „Idsvbs v aktualizačních dotazech“ nepomôže.
// Řešení je odstranit údaj Idsvbs v aktualizačních dotazech Datasetu.
Tento riadok platí okrem hore napísaného.
Rád by som vedel, kedy mám uprednostniť TDataset pred TDBTable. Môj pohľad:
TDBTable
- Dám si vygenerovať zoznam polí a upravím ho
- Delete riešim na jedinom mieste priradením SQL v tvare (neberiem ohľad na syntax) Delete * from myTable.TableName where id = nieco
- Insert a Edit na jedinom mieste priamym volaním myTable.xxx
TDataset
- Musím pre každú udalosť (minimálne Delete, Insert, Modify a Select) nadefinovať SQL. Tým mi rastie veľkosť exe a berie mi aj určitý čas
- A až teraz som tam, kde som okamžite pri použití TDBTable
Takže pri TDataset mám viac „úvodnej“ práce. Stojí to zato?
Ak chcem vykonať napr. hromadný Udate alebo Insert tak je postup pri oboch komponentoch rovnaký. Akurát pri TDBTable použijem komponent TIBQuery
Dodatok: bavíme sa o prístupe a práci s jedinou tabuľkou!