AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Schreibzugriff auf eben erzeugten Datensatz innerhalb einer Transaktion scheitert
Thema durchsuchen
Ansicht
Themen-Optionen

Schreibzugriff auf eben erzeugten Datensatz innerhalb einer Transaktion scheitert

Ein Thema von Sinspin · begonnen am 12. Jan 2011 · letzter Beitrag vom 19. Jan 2011
 
Benutzerbild von Sinspin
Sinspin
Online

Registriert seit: 15. Sep 2008
Ort: Dubai
692 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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz