Erstellen einer Treiberanwendung

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Wichtig

SQL Server Native Client (SNAC) wird nicht ausgeliefert mit:

  • SQL Server 2022 (16.x) und höhere Versionen
  • SQL Server Management Studio 19 und höhere Versionen

Der SQL Server Native Client (SQLNCLI oder SQLNCLI11) und der ältere Microsoft OLE DB-Anbieter für SQL Server (SQLOLEDB) werden für die entwicklung neuer Anwendungen nicht empfohlen.

Für neue Projekte verwenden Sie einen der folgenden Treiber:

Informationen zu SQLNCLI, das als Komponente der SQL Server Datenbank-Engine (Versionen 2012 bis 2019) ausgeliefert wird, finden Sie in dieser Ausnahme für den Supportlebenszyklus.

Die ODBC-Architektur verfügt über vier Komponenten, die die folgenden Funktionen ausführen.

Komponente Funktion
Application 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 einer Instanz 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 Massenkopievorgängen

  • Verwalten von Großdatenvorgängen (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 an. Um sql Server Native Client ODBC-treiberspezifische Erweiterungen zu nutzen, sollte eine Anwendung die Sqlncli.h-Headerdatei 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-spezifische Datentypen.

  • SQL Server-spezifische benutzerdefinierte Datentypen.

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

  • SQL Server Native Client ODBC-Treiberdiagnosefelder.

  • SQL Server-spezifische dynamische Diagnosefunktionscodes.

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

  • 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 Massenkopiefeature des SQL Server Native Client ODBC-Treibers verwendet, muss mit der Sqlncli11.lib-Datei 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-Programmierreferenz.

In diesem Abschnitt

Weitere Informationen

SQL Server Native Client (ODBC)