Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der Grad der Unterstützung für Transaktionen ist treiberdefiniert. ODBC ist so konzipiert, dass sie in einer Einzelbenutzer- oder Desktopdatenbank implementiert werden kann, die nicht mehrere Aktualisierungen ihrer Daten verwalten muss. Darüber hinaus unterstützen einige Datenbanken, die Transaktionen unterstützen, dies nur für die DML-Anweisungen (Data Manipulation Language) von SQL; es gibt Einschränkungen oder spezielle Transaktionssemantiken hinsichtlich der Verwendung von Data Definition Language (DDL), wenn eine Transaktion aktiv ist. Das heißt, es gibt möglicherweise Transaktionsunterstützung für mehrere gleichzeitige Aktualisierungen von Tabellen, aber nicht zum Ändern der Anzahl und Definition von Tabellen während einer Transaktion.
Eine Anwendung bestimmt, ob Transaktionen unterstützt werden, ob DDL in eine Transaktion eingeschlossen werden kann und welche speziellen Effekte das Einschließen von DDL in eine Transaktion hat, durch das Aufrufen von SQLGetInfo mit der Option SQL_TXN_CAPABLE. Weitere Informationen finden Sie in der Beschreibung der SQLGetInfo-Funktion .
Wenn der Treiber Transaktionen nicht unterstützt, die Anwendung jedoch die Möglichkeit hat (eine andere API als ODBC) zum Sperren und Entsperren von Daten, können Anwendungen transaktionsunterstützung erzielen, indem Datensätze und Tabellen bei Bedarf gesperrt und entsperrt werden. Um das Beispiel für die Kontoübertragung zu implementieren, würde die Anwendung die Datensätze für beide Konten sperren, die aktuellen Werte kopieren, das erste Konto abrechnen, das zweite Konto gutschriften und die Datensätze entsperren. Wenn Schritte fehlschlugen, würde die Anwendung mithilfe der Kopien die Konten wiederherstellen.
Auch Datenquellen, die Transaktionen unterstützen, können möglicherweise nicht mehr als eine Transaktion gleichzeitig in einer bestimmten Umgebung unterstützen. Anwendungen rufen SQLGetInfo mit der Option SQL_MULTIPLE_ACTIVE_TXN auf, um zu ermitteln, ob eine Datenquelle gleichzeitig aktive Transaktionen für mehrere Verbindungen in derselben Umgebung unterstützen kann. Da pro Verbindung eine Transaktion vorhanden ist, ist dies nur für Anwendungen interessant, die mehrere Verbindungen mit derselben Datenquelle haben.