Einzelnen Beitrag anzeigen

Darkmorph

Registriert seit: 24. Mär 2003
37 Beiträge
 
Delphi 6 Professional
 
#1

Transaktionsprobleme, bei konkur. Updates bleibt Programm hä

  Alt 3. Sep 2009, 09:37
Datenbank: Firebird • Version: 1.5 • Zugriff über: Delphi Express
Hi,
ich hab folgendes Problem. Wenn ich einen Datensatz ändere und diese Transaktion offen lasse und dann eine zweite instanz von meinem Programm darauf zugreift, um diesen auch zu ändern, bleibt die 2. Instanz erst hängen ohne auslastung und wenn meine erste Instanz commited, produziert die 2. Instanz 100% Last.

SqlConnection.ExecuteDirect('Update personal set vorname="JÖRG SQLCON1" where id=14438'); Bei der Zeile Status := Command.executeImmediate(PChar(SQL), Cursor); bleibt der obige Aufruf dann hängen. Dieser scheint in der DbExpint.dll dann zu liegen.

Es muß aber auch anders gehen, da wenn ich z. B. mit IBExpert als 2. Instanz auf den Datensatz gehe und diesen ändern und commiten will, bringt dieser sofort die Meldung Datensatz blockiert.
Zitat:
"lock conflict on no wait transaction.
deadlock.
update conflicts with concurrent update."
Zitat:
SQLCONNECTION ist mit folgenden Parametern gefüttert:
BlobSize=-1
CommitRetain=False //True or False macht keinen Unterschied
Database=127.0.0.1/3050:C:\database.ibf
DriverName=Interbase
ErrorResourceFile=
LocaleCode=0000
Password=masterkey
RoleName=RoleName
ServerCharSet=win1252
SQLDialect=1
Interbase TransIsolation=ReadCommited
User_Name=sysdba
WaitOnLocks=false //True or False macht keinen Unterschied
Wieso kriege ich bei meinem Programm nicht auch eine Exception, wie sie offenbar bei IBExpert geworfen wird?
Falls Ihr Probleme habt meinen Wirren Gedanken zu folgen, bitte einfach nachfragen. An der Lösung wäre ich echt brennend interessiert.

Vielen Dank für eure Mühen,

Gruß
Benjamin
  Mit Zitat antworten Zitat