Lokale Transaktionen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Transaktionen mit der BDE - Index

Hinweis: Die Borland Database Engine (BDE) ist veraltet und wird nicht mehr weiterentwickelt. Die BDE wird Unicode beispielsweise nie unterstützen. Sie sollten mit der BDE keine neuen Entwicklungen vornehmen. Überprüfen Sie, ob Sie Ihre vorhandenen Datenbankanwendungen nicht von der BDE nach dbExpress migrieren können.

Die BDE unterstützt lokale Transaktionen für Paradox-, dBASE-, Access- und FoxPro-Tabellen. Aus der Perspektive der Codierung gibt es keinen Unterschied zwischen einer lokalen Transaktion und einer Transaktion mit einem externen Datenbankserver.

Hinweis:  Bei Transaktionen mit lokalen Paradox-, dBASE-, Access- und FoxPro-Tabellen definieren Sie die Eigenschaft TransIsolation mit dem Wert tiDirtyRead anstatt mit dem voreingestellten Wert tiReadCommitted. Es wird ein BDE-Fehler zurückgegeben, wenn für die Eigenschaft TransIsolation ein anderer Wert als tiDirtyRead für lokale Tabellen eingestellt wird.

Wird eine Transaktion mit einer lokalen Tabelle gestartet, werden Aktualisierungen der Tabelle angemeldet. Jeder Anmeldungsdatensatz enthält auch den alten zwischengespeicherten Datensatz. Wenn eine Transaktion aktiv ist, wird die Aktualisierung der Datensätze gesperrt bis die Transaktion abgeschlossen oder zurückgesetzt ist. Beim Zurücksetzen werden die alten, zwischengespeicherten Datensätze den aktualisierten Datensätzen vorgezogen, damit ihr Zustand vor der Aktualisierung wieder hergestellt werden kann.

Lokale Transaktionen unterliegen größeren Beschränkungen als jene Transaktionen, die mit SQL-Servern oder ODBC-Treibern ausgeführt werden. Folgende Beschränkungen sind bei lokalen Transaktionen zu berücksichtigen:

  • Eine automatische Wiederherstellung im Falle eines Systemabsturzes ist nicht vorgesehen.
  • Datendefinitionsanweisungen werden nicht unterstützt.
  • Transaktionen können nicht für temporäre Tabellen durchgeführt werden.
  • Die TransIsolation-Ebene muss mit dem Wert tiDirtyRead definiert sein.
  • Bei Paradox-Tabellen lassen sich lokale Transaktionen nur ausführen, wenn für die Tabellen gültige Indizes vorhanden sind. Sind keine Indizes vorhanden, lassen sich die Daten bei Paradox-Tabellen nicht zurücksetzen.
  • Es lässt sich nur eine begrenzte Anzahl von Datensätzen sperren und verändern. Bei Paradox-Tabellen besteht eine Beschränkung von 255 Datensätzen, bei dBASE ist die Grenze 100 Datensätze.
  • Transaktionen können nicht mit dem ASCII-Treiber der BDE ausgeführt werden.
  • Wird während einer Transaktion ein Cursor in einer Tabelle geschlossen, wird die Transaktion dadurch zurückgesetzt, es sei denn:
    • Es sind mehrere Tabellen geöffnet.
    • Der Cursor wird in einer Tabelle geschlossen, an der keine Änderungen vorgenommen wurden.

Siehe auch