Erstellen einer SQL Server Native Client-ODBC-Treiberanwendung
Die ODBC-Architektur verfügt über vier Komponenten, die die folgenden Funktionen ausführen.
Komponente |
Funktion |
---|---|
Anwendung |
Ruft ODBC-Funktionen auf, um mit einer ODBC-Datenquelle zu kommunizieren, sendet SQL-Anweisungen und verarbeitet Resultsets. |
Treiber-Manager |
Verwaltet die Kommunikation zwischen einer Anwendung und allen von der Anwendung verwendeten ODBC-Treibern. |
Treiber |
Verarbeitet alle ODBC-Funktionsaufrufe von der Anwendung, stellt eine Verbindung zu einer Datenquelle her, übergibt SQL-Anweisungen von der Anwendung an die Datenquelle und gibt Ergebnisse an die Anwendung zurück. Bei Bedarf übersetzt der Treiber ODBC SQL-Code von der Anwendung in den von der Datenquelle verwendeten systemeigenen SQL-Code. |
Datenquelle |
Enthält alle Informationen, die ein Treiber für den Zugriff auf eine bestimmte Instanz der Daten in einem DBMS benötigt. |
Eine Anwendung, die den SQL Server Native Client ODBC-Treiber für die Kommunikation mit einer Instanz von SQL Server verwendet, führt die folgenden Tasks aus:
Herstellen einer Verbindung mit einer Datenquelle
Senden von SQL-Anweisungen an die Datenquelle
Verarbeiten der Ergebnisse von Anweisungen von der Datenquelle
Verarbeiten von Fehlern und Meldungen
Beenden der Verbindung mit der Datenquelle
Eine komplexere, für den SQL Server Native Client ODBC-Treiber geschriebene Anwendung kann zusätzlich die folgenden Tasks ausführen:
Verwenden von Cursorn, um die Position in einem Resultset zu bestimmen
Anforderung von Commit- oder Rollbackvorgängen zur Steuerung von Transaktionen
Ausführen von verteilten Transaktionen, an denen zwei oder mehr Server beteiligt sind
Ausführen von gespeicherten Prozeduren auf dem Remoteserver
Aufrufen von Katalogfunktionen für die Abfrage der Attribute eines Resultsets
Durchführen von Massenkopiervorgängen
Verwalten großer Datenvorgänge (varchar(max)-, nvarchar(max)- und varbinary(max)-Spalten)
Verwenden einer Logik zum Wiederherstellen einer Verbindung, um bei der Konfiguration der Datenbankspiegelung ein Failover zu ermöglichen
Protokollieren von Leistungsdaten und Abfragen mit langer Ausführungszeit
Um ODBC-Funktionen aufrufen können, muss eine C- oder C++-Anwendung die Headerdateien sql.h, sqlext.h und sqltypes.h enthalten. Um API-Funktionen des ODBC-Installationsprogramms aufrufen zu können, muss eine Anwendung die Headerdatei odbcinst.h enthalten. Eine ODBC-Unicode-Anwendung muss die Headerdatei sqlucode.h enthalten. ODBC-Anwendungen müssen mit der Datei odbc32.lib verknüpft werden. ODBC-Anwendungen, die API-Funktionen des ODBC-Installationsprogramms aufrufen, müssen mit der Datei odbccp32.lib verknüpft werden. Diese Dateien sind im Windows Platform SDK enthalten.
Viele ODBC-Treiber, wie der SQL Server Native Client ODBC-Treiber, stellen treiberspezifische ODBC-Erweiterungen bereit. Damit die für den SQL Server Native Client ODBC-Treiber spezifischen Erweiterungen genutzt werden können, muss eine Anwendung die Headerdatei sqlncli.h enthalten. Diese Headerdatei enthält Folgendes:
Für den SQL Server Native Client ODBC-Treiber spezifische Verbindungsattribute
Für den SQL Server Native Client ODBC-Treiber spezifische Anweisungsattribute
Für den SQL Server Native Client ODBC-Treiber spezifische Spaltenattribute
SQL Server-spezifische Datentypen
SQL Server-spezifische, benutzerdefinierte Datentypen
Für den SQL Server Native Client ODBC-Treiber spezifische SQLGetInfo-Typen.
Für den SQL Server Native Client ODBC-Treiber spezifische Diagnosefelder
Für SQL Server spezifische, dynamische Diagnosefunktionscodes
C/C++-Definitionen für SQL Server-spezifische, systemeigene C-Datentypen (die zurückgegeben werden, wenn Spalten an den C-Datentyp SQL_C_BINARY gebunden werden).
Typdefinition für die SQLPERF-Datenstruktur
Massenkopiermakros und Prototypen zur Unterstützung von APIs für das Massenkopieren über eine ODBC-Verbindung
Aufrufen der API-Funktionen für verteilte Abfragemetadaten für Listen mit verknüpften Servern und den zugehörigen Katalogen
Eine ODBC-Anwendung in C oder C++, die die Massenkopierfunktion des SQL Server Native Client ODBC-Treibers verwendet, muss mit der Datei sqlncli11.lib verknüpft werden. Anwendungen, die die API-Funktionen für verteilte Abfragemetadaten aufrufen, müssen ebenfalls mit der Datei sqlncli11.lib verknüpft werden. Die Dateien sqlncli.h und sqlncli11.lib werden zusammen mit den Tools für SQL Server-Entwickler verteilt. Die SQL Server-Verzeichnisse Include und Lib müssen sich wie im folgenden Beispiel in den Verzeichnissen INCLUDE und LIB des Compilers befinden:
LIB=c:\Program Files\Microsoft Data Access SDK 2.8\Libs\x86\lib;C:\Program Files\Microsoft SQL Server\100\Tools\SDK\Lib;
INCLUDE=c:\Program Files\Microsoft Data Access SDK 2.8\inc;C:\Program Files\Microsoft SQL Server\100\Tools\SDK\Include;
Ob es erforderlich ist, dass bei der Anwendung mehrere ODBC-Aufrufe gleichzeitig ausstehen können, ist eine Entwurfsentscheidung, die früh im Prozess der Erstellung einer Anwendung getroffen werden muss. Es gibt zwei Methoden zur Unterstützung mehrerer gleichzeitiger ODBC-Aufrufe, die in den verbleibenden Themen dieses Abschnitts beschrieben werden. Weitere Informationen finden Sie in der ODBC Programmer's Reference.