Erstellen einer Treiberanwendung

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Wichtig

Der SQL Server Native Client (häufig abgekürzt mit SNAC) wurde aus SQL Server 2022 (16.x) und SQL Server Management Studio 19 (SSMS) entfernt. Der SQL Server Native Client (SQLNCLI oder SQLNCLI11) und der Microsoft OLE DB-Legacyanbieter für SQL Server (SQLOLEDB) werden für neue Anwendungsentwicklungen nicht empfohlen. Verwenden Sie in Zukunft den neuen Microsoft OLE DB-Treiber für SQL Server (MSOLEDBSQL) oder den neuesten Microsoft ODBC Driver for SQL Server. Informationen zu SQLNCLI, das als Komponente von SQL Server Datenbank-Engine (Versionen 2012 bis 2019) ausgeliefert wird, finden Sie in dieser Supportlebenszyklus-Ausnahme.

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 verwendet, um mit einem instance von SQL Server zu kommunizieren, führt die folgenden Aufgaben 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 Anwendung, die für den SQL Server Native Client ODBC-Treiber geschrieben wurde, kann auch die folgenden Aufgaben 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

  • Ausfü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, einschließlich des SQL Server Native Client ODBC-Treibers, bieten treiberspezifische ODBC-Erweiterungen. Um SQL Server Native Client ODBC-treiberspezifische Erweiterungen nutzen zu können, sollte eine Anwendung die Headerdatei sqlncli.h enthalten. Diese Headerdatei enthält Folgendes:

  • SQL Server Native Client ODBC-Treiberspezifische Verbindungsattribute.

  • SQL Server Native Client ODBC-Treiberspezifische Anweisungsattribute.

  • SQL Server Native Client ODBC-Treiberspezifische Spaltenattribute.

  • SQL Server-spezifischen Datentypen.

  • SQL Server-spezifischen benutzerdefinierten Datentypen.

  • SQL Server Native Client ODBC-treiberspezifische SQLGetInfo-Typen.

  • SQL Server Native Client ODBC-Treiber Diagnose Felder.

  • SQL Server-spezifischen dynamischen Diagnosefunktionscodes.

  • C/C++-Typdefinitionen für SQL Server-spezifischen nativen C-Datentypen (zurückgegeben, wenn Spalten an den C-Datentyp gebunden SQL_C_BINARY).

  • 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

Jede C- oder C++-ODBC-Anwendung, die das Massenkopierfeature des SQL Server Native Client ODBC-Treibers verwendet, muss mit der Datei sqlncli11.lib verknüpft sein. 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 als Teil der SQL Server Entwicklertools verteilt. Die SQL Server Include- und Lib-Verzeichnisse sollten sich wie folgt in den INCLUDE- und LIB-Pfaden 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-Programmiererreferenz.

In diesem Abschnitt

Weitere Informationen

SQL Server Native Client (ODBC)