![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: IBX
IBTable funktioniert nicht mit Not-NULL Generator Feld
Hallo!
Ich hab hier eine Firebird-Tabelle die wie folgt definiert ist:
Code:
d.h. das Feld "User_ID" is sowas wie ein AutoInc-Feld. Man brauch sich da nicht kümmern, man kann einfach ein Insert machen, in dem nur das Feld "Name" gesetzt wird, firebird füllt selber das User_Id aus.
CREATE TABLE USERS (USER_ID INTEGER NOT NULL,
NAME VARCHAR(30) NOT NULL, FOO SMALLINT, CONSTRAINT PK_USERS PRIMARY KEY (USER_ID), CONSTRAINT UNQ_USERS UNIQUE (NAME)); SET TERM ^ ; CREATE TRIGGER USERS_BI FOR USERS ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.USER_ID IS NULL) THEN NEW.USER_ID = GEN_ID(GEN_USER_ID,1); END ^ COMMIT WORK ^ SET TERM ; ^ Häng ich nun ein IBTable da dran und will die Tabelle über den IBTable befüllen krieg ich eine Fehlermeldung "Feld 'USER_ID' muss einen Wert haben". ??? |
AW: IBTable funktioniert nicht mit Not-NULL Generator Feld
Die VCL weiss nicht, dass der Inhalt automatisch durch einen Datenbanktrigger befüllt wird.
Versuche mal, das Property AutoGenerateValue des Felds zu setzen:
Delphi-Quellcode:
procedure TForm1.Query1AfterOpen(Dataset:TDataset);
begin Dataset.FieldByName('USER_ID').AutoGenerateValue := arAutoInc; end; |
AW: IBTable funktioniert nicht mit Not-NULL Generator Feld
Zitat:
Warum kümmert sich die VCL überhaupt darum?!? Und: Wie kann ich ihr das abgewöhnen?
Delphi-Quellcode:
Fehlermeldung: IBTable1: Operation bei geöffneter Datenmenge nicht ausführbar
... <Gleich beim Start des Programmes, nach dem Verbinden zu Datenbank>
IBTable1.Open; IBTable1.FieldByName('USER_ID').AutoGenerateValue := arAutoInc; |
AW: IBTable funktioniert nicht mit Not-NULL Generator Feld
Wenn Dein AutoInc-Feld, war ja meist der Fall ist, zufällig das erste Feld innerhalb Deines SQL ist kannst Du diesem Problem mit
Code:
beikommen. Zumindest bei IBObjects ohne Probleme. Wenn Du eine statische Feldliste benutzt, also innerhalb der IDE einsehbar, dann kannst Du diesen Wert auch dort setzen. Obwohl ich gerade sehe IBTable, aber nun ja, Versuch ist es wert.
sqlQuery.Fields[0].Required := False;
|
AW: IBTable funktioniert nicht mit Not-NULL Generator Feld
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 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 by Thomas Breitkreuz