Hallo zusammen,
ich bin gerade dabei eine Excel Benutzeroberfläche mit PostgreSQL über ODBC zu verbinden. Das funktioniert auch alles ganz gut.
Wenn ein Nutzer später einen Datensatz aus der Datenbank holt, muss dieser in der Datenbank so lange gesperrt sein, bis der Nutzer ihn abgespeichert hat und ihn nicht mehr ändert(bis zu einer Stunde etwa). Das realisiere ich derzeit mit :
DBEngine.Workspaces(0).BeginTrans
bzw.
DBEngine.Workspaces(0).CommitTrans
also einer ziemlich langen Transaktion (wenn da einer was schöneres weiß, gerne). Wenn ich jetzt eine Update-Anfrage auf gesperrte Daten rausschicke, wartet Postgres bis die erste Anfrage die Daten wieder freigegeben hat, was wie schon gesagt bis zu einer Stunde dauern könnte. Dabei wird dann Excel komplett blockiert, was aus verständlichen Gründen nicht tragbar ist :)
Gibt es eine Möglichkeit die SQL Anfrage wieder abzubrechen wenn man merkt, dass der Datensatz gerade gesperrtz ist?
Oder gibt es eine Möglichkeit vor dem Abschicken der Anfrage zu prüfen, ob die Daten gesperrt sind?
Oder kann ich die Daten auf eine Andere Art Sperren(Flags in der Datenbank sollen jedoch vermieden werden)?
Vielen Dank für eure Hilfe
Florian |