Freigeben über


Transaktionen (MFC-Datenzugriff)

Das Konzept der Transaktionen wurde entwickelt, um Fälle zu behandeln, in denen der resultierende Status der Datenbank vom Gesamterfolg einer Reihe von Operationen abhängt. Dieses könnte vorkommen, da aufeinander folgende Operationen die Ergebnisse von vorangegangenen Operationen ändern können. Wenn eine der Operationen fehlschlägt, kann der resultierende Status in solchen Fällen unbestimmt sein.

Um dieses Problem zu lösen, gruppieren die Transaktionen eine Reihe von Operationen so, dass die Integrität des Endergebnisses sichergestellt werden kann. Alle Operationen müssen erfolgreich sein, und anschließend muss ein Commit ausgeführt werden (Schreiben in die Datenbank), oder die ganze Transaktion schägt fehl. Der Abbruch einer Transaktion wird als Rollback bezeichnet. Rollbacks ermöglichen die Wiederherstellung von Änderungen, und die Datenbank wird in den Zustand versetzt, der vor der Transaktion vorhanden war.

Wenn Sie beispielsweise bei einer automatisierten Banküberweisung Geld von Konto A auf Konto B übertragen, muss sowohl die Abbuchung von Konto A als auch die Einzahlung auf Konto B erfolgreich sein, damit die Überweisung fehlerfrei erfolgt, oder die ganze Transaktion schlägt fehl.

Eine Transaktion muss über ACID-Eigenschaften verfügen, die für Folgendes stehen:

  • Die Atomität A-Transaktion ist eine atome Arbeitseinheit und führt genau einmal aus; entweder wird alles erledigt oder keines davon ist.

  • Konsistenz A-Transaktion behält die Konsistenz von Daten bei und wandelt einen konsistenten Zustand von Daten in einen anderen konsistenten Zustand von Daten um. Durch eine Transaktion gebundene Daten müssen semantisch erhalten bleiben.

  • Isolation A-Transaktion ist eine Einheit der Isolation, die jeweils separat und unabhängig von gleichzeitigen Transaktionen auftritt. Eine Transaktion sollte nie die Zwischenschritte einer anderen Transaktion sehen.

  • Haltbarkeit A Transaktion ist eine Einheit der Wiederherstellung. Wenn eine Transaktion erfolgreich ausgeführt wird, werden die entsprechenden Aktualisierungen beibehalten, auch wenn das System abstürzt oder heruntergefahren wird. Schlägt eine Transaktion fehl, verbleibt das System in dem Zustand, der vor der Ausführung eines Commit für die Transaktion vorhanden war.

Sie können Transaktionen in OLE DB (siehe Unterstützende Transaktionen in OLE DB) oder ODBC (siehe Transaktion (ODBC)) unterstützen.

Eine verteilte Transaktion ist eine Transaktion, die verteilte Daten aktualisiert. Dabei handelt es sich also um Daten, die sich auf mehreren vernetzten Computersystemen befinden. Wenn Sie Transaktionen über ein verteiltes System unterstützen möchten, sollten Sie ADO.NET anstelle der OLE DB-Transaktionsunterstützung verwenden.

Siehe auch

Datenzugriffsprogrammierung (MFC/ATL)