![]() |
AW: Firebird und AutoInc
Back to the basics...
Ein Feld kann das Attribut NULL oder NOT NULL haben. Ein Primärschlüsselfeld hat in aller Regel das Attribut NOT NULL. Bei einem AutoInc-Feld wird die Sache etwas komplizierter. Es hat das Attribut NOT NULL, darf aber nicht von der Anwendung befüllt werden (Attribut "DON'T FILL") Es wird ja von der Datenbank gefüllt und darf deshalb nicht in der INSERT oder UPDATE-Anweisung angesprochen werden. Man muss also daür sorgen (eigentlich sollte das die VCL tun), dass das Property "Required" der Felds = False ist. AutoInc-Felder sind bequem und smart, aber nur solange man den Wert beim Einfügen eines Datensatzes nicht benötigt. Hat man abhängige Tabellen, dann ist es besser auf AutoInc-Felder zu verzichten und einen Generator oder künstlich erzeugte Schlüssel zu benützen. |
AW: Firebird und AutoInc
Hi,
danke für deinen Post. Habe jetzt mal das beforeInsert genutzt:
Delphi-Quellcode:
Das scheint vorerst zu klappen. Nicht schön, aber zweckmäßig :stupid:
procedure Tdata.QueryBeforeInsert(DataSet: TDataSet);
begin Query.FieldByName('id').Required := false; end; Viele Grüße ... |
AW: Firebird und AutoInc
|
AW: Firebird und AutoInc
Zitat:
|
AW: Firebird und AutoInc
Am Besten den Trigger so anlegen, dass immer ein Wert gesetzt wird, auch wenn ein Wert ( wie Z.B. '') übergeben wird
|
AW: Firebird und AutoInc
Ja eben, deshalb hatte ich ja vorgeschlagen, die If-Abfrage ganz aus dem Trigger zu löschen.
|
AW: Firebird und AutoInc
Oder zu erweitern ( möglicherweise werden ja sinnvolle Werte übergeben)
|
AW: Firebird und AutoInc
Mach ich nie, da ich der Meinung bin, dass die DB und nur die DB künstliche Schlüssel zu vergeben hat. Aber das ist vermutlich Ansichtssache.
|
AW: Firebird und AutoInc
Ich auch. Da gibt es aber unterschiedliche Ansichten
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz