Einzelnen Beitrag anzeigen

Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
681 Beiträge
 
Delphi 10.3 Rio
 
#1

Schreibzugriff auf eben erzeugten Datensatz innerhalb einer Transaktion scheitert

  Alt 12. Jan 2011, 16:45
Datenbank: ADS • Version: 10.0.03 • Zugriff über: TAdsDataSet
Hallo,

ich habe beim Zugriff auf eine Tabelle innerhalb einer Transaktion das Problem das ich auf einen eben erzeugten und gespeicherten Datensatz nicht mehr schreibend zugreifen kann.
Fall im einzelnen:
Ich schütze eine komplexe Änderung an der Datenbank durch eine Transaktion um Müll bei auftretenden Fehlern zu verhindern.
Innerhalb der Transaktion wird mit einer Tabelle (ADSTable) ein neuer Datensatz erstellt (kopie eines bestehenden) und gespeichert.
An anderer Stelle muss der eben erstellte Datensatz nochmals bearbeitet werden. Dazu kommt eine andere Tabelle zum Einsatz die für genau den Zweck erstellt wird.
In dem Moment wie der erzegte Datensatz bearbeitet werden soll bekomme ich die Meldung : (5035) : "The requested lock could not be granted. The file or record may be locked by another user."
Der Datensatz ist mit Sicherheit nicht offen, wird nicht von einem anderen Nutzer bearbeitet und wurde auch nicht zwischenzeitlich wieder gelöscht.
Alle Tabellen verwenden für ihren Zugriff die gleiche Connection, die erstellten, aber noch nicht commiteten Datensätze lassen sich lesend öffnen und anzeigen. Eine Transaktion in der bestehenden Transaktion (Nested Transaction) lößt das Problem auch nicht.

Alles funktioniert wunderbar wenn ich ohne Transaktionen arbeite. Es wäre mir halt nur lieber mit Transaktion damit es kein Müll in der DB gibt wenn es aus irgend einem Grund mal knallt.

Ich würde mich echt freuen wenn mir jemand sagen könnte dass das eben so ist. Schöner wäre natürlich ein Lösung

Danke für eure Hilfe.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat