Hi,
ich nutze ADO mit dem MS SQL-Server und Delphi6 und habe folgendes Problem.
Eine Tabelle hat als Primary-Key eine Spalte vom Typ integer die als Identity markiert ist. Füge ich unter Delphi Datensätze in diese Tabelle ein, so funktioniert das problemlos (ich nutzte die TBetterADODataset-Komponente). Wenn ich jedoch in einem AfterInsert-Trigger den Vorgang in einer zweiten Tabelle mit einer Identity-Spalte protokolliere, so liefert ADO nach dem Einfügen nicht den neuen Identity-Wert der Ursprungstabelle zurück, sondern den der Protokoll-Tabelle. Scheint, als würde ADO nach dem Einfügen nur den globalen @@IDENTITY-Wert auslesen anstatt den letzten IDENTITY-Wert er Ursprungstabelle über IDENT_CURRENT('Tabellenname') auszulesen. Als Resultat hat ADO ein problem mit der Repositionierung !?
Weiß eventuell jemand eine Abhilfe ? Auf die Identity-Funktionalität verzichten zu müssen ist ein erhebliches Handycap. Und für jede Tabelle eine INSERT-StoredProcedure zu schreiben ist ein wenig aufwendig ...
Tobias
ich nutze ADO mit dem MS SQL-Server und Delphi6 und habe folgendes Problem.
Eine Tabelle hat als Primary-Key eine Spalte vom Typ integer die als Identity markiert ist. Füge ich unter Delphi Datensätze in diese Tabelle ein, so funktioniert das problemlos (ich nutzte die TBetterADODataset-Komponente). Wenn ich jedoch in einem AfterInsert-Trigger den Vorgang in einer zweiten Tabelle mit einer Identity-Spalte protokolliere, so liefert ADO nach dem Einfügen nicht den neuen Identity-Wert der Ursprungstabelle zurück, sondern den der Protokoll-Tabelle. Scheint, als würde ADO nach dem Einfügen nur den globalen @@IDENTITY-Wert auslesen anstatt den letzten IDENTITY-Wert er Ursprungstabelle über IDENT_CURRENT('Tabellenname') auszulesen. Als Resultat hat ADO ein problem mit der Repositionierung !?
Weiß eventuell jemand eine Abhilfe ? Auf die Identity-Funktionalität verzichten zu müssen ist ein erhebliches Handycap. Und für jede Tabelle eine INSERT-StoredProcedure zu schreiben ist ein wenig aufwendig ...
Tobias
Comment