Folgende Situation:
Eine ganz einfache Tabelle bei der die erste Spalte automatisch mit einem Generator gefüllt wird, z.B.
Code:
CREATE GENERATOR GEN_TEST;
CREATE TABLE TEST (
INTFIELD INTEGER,
FOO VARCHAR(5));
SET TERM ^ ;
CREATE OR ALTER TRIGGER TEST_BI FOR TEST
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.INTFIELD IS NULL) THEN
NEW.INTFIELD = GEN_ID(GEN_TEST,1);
END
^
SET TERM ; ^
);
Diese Tabelle hänge ich an einfach (je nach Zugriffsmethode) an eine IBDataSet/TIbTable/IBCQuery -> DataSource -> TDbGrid.
Lege ich da einen neuen Eintrag an (d.h. ich tipp einen String in Spalte zwei und scrolle runter) so wird in der Datenbank die erste Spalte sehr wohl mit dem Wert von Generator gefüllt, das DBGrid checkt das aber nicht, d.h. die erste Spalte bleibt leer.
Scroll ich zurück und will dann den Eintrag löschen so krieg ich bei IBDAC die Fehlermeldung "Update failed. Found 0 records", bei IBTable tut er so als hätte er den Eintrag gelöscht, schliesst und startet man die Anwendung ist der Eintrag aber doch noch da.
Hilfe!
Danke!