Einzelnen Beitrag anzeigen

needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#1

SQL Trigger - TADOTable Löschfehler

  Alt 12. Okt 2005, 11:19
Datenbank: SQL SERVER 2000 • Zugriff über: ADO
Hallo zusammen.

Ich verwende für den Zugriff auf einen SQL Server 2 ADOTable (Master/Detail) Komponenten.
Nun habe ich einen Trigger erstellt, der einen Datensatz, den ich von der Master Tabelle lösche, in eine andere Tabelle wegsichert.
Im Enterprise Manager des SQL Servers funktioniert der Trigger einwandfrei, nur wenn ich ein Table.delete von Delphi ausführe bekomm ich eine OLE-Exception Fehlermeldung: "Die zum Aktualisieren angegebene Zeile wurde nicht gefunden. Einige Werte wurden seit
dem letzten Lesen ggf. geändert".

Dadurch dass ich ntext Felder verwende kann ich auch keine After-Delete Trigger verwenden sondern muss lt. Anleitung
einen Instead-of-Delete Trigger verwenden und den Löschbefehl im Trigger einbauen.

Der Datensatz wird letztendlich auch gelöscht und in die Sicherungstabelle geschrieben.

Der Trigger sieht folgendermaßen aus:

CREATE TRIGGER [LAGER_ARCHIVIEREN]
ON dbo.LAGER
INSTEAD OF DELETE
AS
BEGIN
DELETE FROM BILDER WHERE NR IN (SELECT I_NUMMER FROM deleted)
INSERT INTO LAGERARCHIV
SELECT *,SYSTEM_USER,GETDATE() FROM deleted
DELETE FROM LAGER
WHERE I_NUMMER IN (SELECT I_NUMMER FROM deleted)
END

Wer kann mir bei dem Problem weiterhelfen ?
  Mit Zitat antworten Zitat