Delphi lässt mich nicht mit fehlenden Säulen einsetzen, sondern mit Auslöser und Generatoren für diese Felder
-
14-11-2019 - |
Frage
Das Problem ist einfach: Ich habe Triggers und Generatoren in meiner Firebird 2.1.4-Datenbank, um ein Spalten-Auto-Inkrement auf jedem Einsatz zu erstellen.
Die Architektur des Systems lautet wie folgt: generasacodicetagpre.
Wenn ich jedoch versuche, Updates in meinem TClientDataset mit einer fehlenden Spalte zu posten, beschweren Sie sich delphi wie folgt: generasacodicetagpre.
Wenn ich eine SQL-Insert-Anweisung mit den Feldern fehlen, wird die Zeile eingefügt und die Auslöser und Generatoren arbeitet wie erwartet.
Wie verstehe ich Delphi (DBX, Datasnap und solche), was ich versuche, zu tun (und zulassen)?
edit
Bereitstellung von mehr Informationen basierend auf @ MJ2008s Kommentar: Dieses TClientDataset wird zur Laufzeit mit der CLONEcursor-Methode erstellt.Nachdem ich den CLONECURSOR angerufen habe, setze ich dieses Feld dieses Felds auf FALSE ein.Es hilft bei diesem Problem nicht.Beispiel: generasacodicetagpre.
Dies führt dazu, dass dieselbe Ausnahme geworfen wird.
Lösung
I had to set the TSQLDataset's Required property to False too. That solved the issue.
Andere Tipps
Just to complement: when you do a TClientDataset setting, the updates are in the end sent to the data access component, in this case TSQLDataset, so even if the TClientdataset doesn't require the field's value, if the data access component requires it the error is raised.
It'll be the same even if data come from a TADODataset, TIbDataset, or whatever.