Hallo,
beim ausführen von:
IBDataSetDaten->Active=true;
IBDataSetDaten->Insert();
IBDataSetDaten->FieldByName("TYP")->AsString = "hier ein typ";
IBDataSetDaten->Post();
IBTransaction1->Commit();
IBDataSetDaten->Active=false;
erhalte ich den Fehler:
EDatabaseError mit der Meldung 'Field ID' muss einen Wert haben.
obwohl ich beim erstellen der Datenbank:
CREATE GENERATOR Gen_Daten;
CREATE TABLE Daten(
ID INTEGER NOT NULL PRIMARY KEY,
TS TIMESTAMP DEFAULT 'now',
.....
set term #;
create trigger set_id_daten for daten before insert as
BEGIN
if (new.id is null) then new.id = gen_id(Gen_Daten,1);
end#
set term ;#
definiert habe. Ein "insert into daten (TYP) VALUES ('blabla');" mittles isql.exe
funktioniert prima und die ID wird generiert und eingefügt. Beim googeln habe
ich zwar diverse diskussionen und mögliche lösungen gefunden aber keine
die diesen Fehlerabbruch beseitigt (zumal meist aus Delphi-Sicht)
Den IBDataSet habe ich zuerst über SQL-Bearbeiten "select * from DATEN"
und dann über den Datenmengen-Editor ..."SQL Generieren" konfiguriert.
Wie löse ich diese Problem?
p.s. zuvor hatte ich eine Lösung mit IBSQL bei der ich einen SQL String zusammgengebaut und IBSQL1->ExecQuery(); einen Datensatz eingefüt. Hat
Prinizpiell funktioniert. Bei der Ausführung ist mir Anwendung häufig abgestürzt (keine Rückmeldung).
beim ausführen von:
IBDataSetDaten->Active=true;
IBDataSetDaten->Insert();
IBDataSetDaten->FieldByName("TYP")->AsString = "hier ein typ";
IBDataSetDaten->Post();
IBTransaction1->Commit();
IBDataSetDaten->Active=false;
erhalte ich den Fehler:
EDatabaseError mit der Meldung 'Field ID' muss einen Wert haben.
obwohl ich beim erstellen der Datenbank:
CREATE GENERATOR Gen_Daten;
CREATE TABLE Daten(
ID INTEGER NOT NULL PRIMARY KEY,
TS TIMESTAMP DEFAULT 'now',
.....
set term #;
create trigger set_id_daten for daten before insert as
BEGIN
if (new.id is null) then new.id = gen_id(Gen_Daten,1);
end#
set term ;#
definiert habe. Ein "insert into daten (TYP) VALUES ('blabla');" mittles isql.exe
funktioniert prima und die ID wird generiert und eingefügt. Beim googeln habe
ich zwar diverse diskussionen und mögliche lösungen gefunden aber keine
die diesen Fehlerabbruch beseitigt (zumal meist aus Delphi-Sicht)
Den IBDataSet habe ich zuerst über SQL-Bearbeiten "select * from DATEN"
und dann über den Datenmengen-Editor ..."SQL Generieren" konfiguriert.
Wie löse ich diese Problem?
p.s. zuvor hatte ich eine Lösung mit IBSQL bei der ich einen SQL String zusammgengebaut und IBSQL1->ExecQuery(); einen Datensatz eingefüt. Hat
Prinizpiell funktioniert. Bei der Ausführung ist mir Anwendung häufig abgestürzt (keine Rückmeldung).
Comment