Thema: Delphi ADO Guru gesucht

Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#33

AW: ADO Guru gesucht

  Alt 13. Mär 2013, 20:37
Also ich kann das nachvollziehen, aber nur dann, wenn eine Spalte im Server über einen Trigger geändert wird. Dann bekommt es ADO nicht mit.

Folgender Befehl wird von ADO abgesetzt, wenn ich einen Datensatz in eine 'Datatable' Tabelle anhänge (das sp_executesql nehme ich mal weg):
Code:
SET NOCOUNT OFF;
INSERT INTO "Test".."DataTable" ("text") VALUES ('Foobar');
SELECT SCOPE_IDENTITY() AS SCOPE_ID_COLUMN
Es wird also der Datensatz angehängt und die ID ordentlich abgeholt. Also funktioniert das auch alles. Bis hierhin.

In meiner Test-Tabelle gibt es eine weitere Spalte 'someID'. Die wird per Trigger gesetzt, und *nicht* über ADO (War zufällig so).

Nun verändere ich die Zeile in meinem Delphi-Programm: Folgender Befehl geht zum Server:
Code:
UPDATE "Test".."DataTable"
SET "text"='BarFoo'
WHERE "ID"=123 
AND "text"='Foobar'
AND "someID" IS NULL --- <<<<< deswegen knallt es
ADO denkt, 'someID' sei NULL (klar, wurde von Delphi ja auch nicht geändert), aber das stimmt ja nicht (wegen meinem Trigger).

Wenn ich den Trigger entferne, funktioniert alles.

Prüf doch mal, ob der hinzugefügte Datensatz in der DB exakt die gleichen Daten hat, wie in deiner App...
  Mit Zitat antworten Zitat