Freigeben über


Verbindungshandles

Eine Verbindung besteht aus einem Treiber und einer Datenquelle. Ein Verbindungshandle identifiziert jede Verbindung. Das Verbindungshandle definiert nicht nur, welcher Treiber verwendet werden soll, sondern welche Datenquelle mit diesem Treiber verwendet werden soll. Innerhalb eines Codesegments, das ODBC (Treiber-Manager oder Treiber) implementiert, identifiziert das Verbindungshandle eine Struktur, die Verbindungsinformationen enthält, z. B. folgendes:

  • Der Status der Verbindung

  • Die aktuelle Diagnose auf Verbindungsebene

  • Die Handles von Anweisungen und Deskriptoren, die derzeit für die Verbindung zugeordnet sind

  • Die aktuellen Einstellungen der einzelnen Verbindungsattribute

ODBC verhindert nicht mehrere gleichzeitige Verbindungen, wenn der Treiber sie unterstützt. Daher können mehrere Verbindungshandles in einer bestimmten ODBC-Umgebung auf eine Vielzahl von Treibern und Datenquellen, auf denselben Treiber und eine Vielzahl von Datenquellen oder sogar auf mehrere Verbindungen mit demselben Treiber und derselben Datenquelle verweisen. Einige Treiber beschränken die Anzahl der aktiven Verbindungen, die sie unterstützen; Die Option SQL_MAX_DRIVER_CONNECTIONS in SQLGetInfo gibt an, wie viele aktive Verbindungen ein bestimmter Treiber unterstützt.

Verbindungshandles werden in erster Linie beim Herstellen einer Verbindung mit der Datenquelle (SQLConnect, SQLDriverConnect oder SQLBrowseConnect) verwendet, die Verbindung mit der Datenquelle (SQLDisconnect), das Abrufen von Informationen über den Treiber und die Datenquelle (SQLGetInfo), das Abrufen von Diagnosen (SQLGetDiagField und SQLGetDiagRec) und das Ausführen von Transaktionen (SQLEndTran). Sie werden auch beim Festlegen und Abrufen von Verbindungsattributen (SQLSetConnectAttr und SQLGetConnectAttr) und beim Abrufen des systemeigenen Formats einer SQL-Anweisung (SQLNativeSql) verwendet.

Verbindungshandles werden sqlAllocHandle zugeordnet und mit SQLFreeHandle freigegeben.