GELÖST HSQL Transaktionssteuerung

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

GELÖST HSQL Transaktionssteuerung

Beitrag von WSO »

Hallo Zusammen,
hat jemand ein kleines Beispiel für eine Transaktionssteuerung per Basic-Makro für HSQL-DB?

Ich möchte unter bestimmten Bedingungen ein Rollback von mehreren Datensatzmanilpulationen manuell, oder bei Systemabsturz automatisch
rückgängig machen.
Etwa so:

Code: Alles auswählen

SUB xzy

   On Error GoTo pError:

   iTransaction = FALSE
   Code ....

   START Transaction
   iTransction = TRUE

   Insert
   Update
   etc.

   If iAbbruchbedingung  = True GoTo pError:

   END Transaction

   GoTo pEnde:

pError:
   If iTransaction = TRUE Then
       Rollback
   End if
   msgbox ...

pEnde:
End SUB

Moderation: Zur übersichtlichen Darstellung von Programmcode im Text [​code][/code] Tags gesetzt.—lorbass, Moderator
Zuletzt geändert von WSO am Mo, 14.07.2014 23:25, insgesamt 1-mal geändert.
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: HSQL Transaktionssteuerung

Beitrag von DPunch »

Servus

Für Transaktionen brauchst Du eine Verbindung ohne connection pooling, d.h. eine Verbindung, die nicht in einem Pool für andere Anfragen an die gleiche Datenquelle vorgehalten wird.
Die kriegst Du so

Code: Alles auswählen

oConnection = oDataSource.GetIsolatedConnection("","")
Mit

Code: Alles auswählen

oConnection.AutoCommit = False
stellst Du das automatische Commit, das bei normalen Verbindungen voreingestellt und nicht veränderbar ist, aus.
Bei Bedarf kannst Du dann mit

Code: Alles auswählen

oConnection.Rollback
bzw.

Code: Alles auswählen

oConnection.Commit
deine Änderungen wegschreiben bzw. rückgängig machen.
WSO
*****
Beiträge: 233
Registriert: Di, 22.04.2014 13:03

Re: HSQL Transaktionssteuerung

Beitrag von WSO »

Vielen Dank!
Das ist doch mal wirklich einfach und transparent.
Gibt es limits für das Tranasaktionsvolumen?
Gruss,
WSO
Antworten