Een driverapplicatie maken

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Important

SQL Server Native Client (SNAC) wordt niet geleverd met:

  • SQL Server 2022 (16.x) en latere versies
  • SQL Server Management Studio 19 en latere versies

De SQL Server Native Client (SQLNCLI of SQLNCLI11) en de verouderde Microsoft OLE DB-provider voor SQL Server (SQLOLEDB) worden niet aanbevolen voor de ontwikkeling van nieuwe toepassingen.

Gebruik een van de volgende stuurprogramma's voor nieuwe projecten:

Voor SQLNCLI die als onderdeel van SQL Server Database Engine (versies 2012 tot en met 2019) wordt geleverd, raadpleegt u deze uitzondering voor de levenscyclus van ondersteuning.

De ODBC-architectuur heeft vier componenten die de volgende functies uitvoeren.

Onderdeel Functie
Application Roept ODBC-functies aan om te communiceren met een ODBC-databron, dient SQL-instructies in en verwerkt resultaatsets.
Driver Manager Beheert de communicatie tussen een applicatie en alle ODBC-drivers die door de applicatie worden gebruikt.
Chauffeur Verwerkt alle ODBC-functieaanroepen van de applicatie, verbindt met een databron, geeft SQL-instructies van de applicatie door aan de databron en geeft resultaten terug aan de applicatie. Indien nodig vertaalt de driver ODBC SQL van de applicatie naar native SQL die door de databron wordt gebruikt.
Gegevensbron Bevat alle informatie die een driver nodig heeft om toegang te krijgen tot een specifieke instantie van data in een DBMS.

Een applicatie die de SQL Server Native Client ODBC-driver gebruikt om te communiceren met een instantie van SQL Server voert de volgende taken uit:

  • Verbindt met een databron

  • Stuurt SQL-instructies naar de databron

  • Verwerkt de resultaten van statements uit de databron

  • Verwerkt fouten en berichten

  • Beëindigt de verbinding met de databron

Een complexere applicatie geschreven voor de SQL Server Native Client ODBC-driver kan ook de volgende taken uitvoeren:

  • Gebruik cursors om de locatie in een resultaatset te regelen

  • Request commit- of rollback-operaties voor transactiebeheer

  • Voer gedistribueerde transacties uit waarbij twee of meer servers betrokken zijn

  • Voer opgeslagen procedures uit op de externe server

  • Callcatalog-functies om te informeren naar de attributen van een resultaatset

  • Voer bulkkopieeroperaties uit

  • Beheer grote databewerkingen (varchar(max),nvarchar(max) en varbinary(max) kolommen)

  • Gebruik reconnection-logica om failover te vergemakkelijken wanneer databasespiegeling is geconfigureerd

  • Logprestatiegegevens en langlopende queries

Om ODBC-functieaanroepen te maken, moet een C- of C++-applicatie de headerbestanden sql.h, sqlext.h en sqltypes.h bevatten. Om aanroepen te maken naar de ODBC-installer API-functies, moet een applicatie het odbcinst.h-headerbestand toevoegen. Een Unicode ODBC-applicatie moet het sqlucode.h-headerbestand bevatten. ODBC-applicaties moeten gekoppeld zijn aan het odbc32.lib-bestand. ODBC-applicaties die de ODBC-installer API-functies aanroepen, moeten gekoppeld zijn aan het odbccp32.lib-bestand. Deze bestanden zijn opgenomen in de Windows Platform SDK.

Veel ODBC-drivers, waaronder de SQL Server Native Client ODBC-driver, bieden driver-specifieke ODBC-extensies. Om gebruik te maken van SQL Server Native Client ODBC-driver-specifieke extensies, moet een applicatie het sqlncli.h-headerbestand bevatten. Dit headerbestand bevat:

  • SQL Server Native Client ODBC-driver-specifieke verbindingsattributen.

  • SQL Server Native Client ODBC driver-specifieke statementattributen.

  • SQL Server Native Client ODBC-driver-specifieke kolomattributen.

  • SQL Server-specifieke datatypes.

  • SQL Server-specifiek, door gebruikers gedefinieerde datatypes.

  • SQL Server Native Client ODBC driver-specifieke SQLGetInfo-types.

  • SQL Server Native Client ODBC driver diagnostische velden.

  • SQL Server-specifieke diagnostische dynamische functiecodes.

  • C/C++ typedefinities voor SQL Server-specifieke native C-datatypes (teruggegeven wanneer kolommen gebonden zijn aan C-datatype SQL_C_BINARY).

  • Typedefinitie voor de SQLPERF-datastructuur.

  • Bulk macro's en prototypes kopiëren om bulk-API-gebruik via een ODBC-verbinding te ondersteunen.

  • Roep de gedistribueerde querymetadata API-functies aan voor lijsten van gekoppelde servers en hun catalogi.

Elke C- of C++ ODBC-applicatie die de bulk copy-functie van de SQL Server Native Client ODBC-driver gebruikt, moet gekoppeld zijn aan het sqlncli11.lib-bestand. Applicaties die de API-functies van de distributed query metadata aanroepen, moeten ook gekoppeld zijn aan sqlncli11.lib. De sqlncli.h- en sqlncli11.lib-bestanden worden verspreid als onderdeel van de tools van de SQL Server-ontwikkelaar. De SQL Server Include- en Lib-mappen moeten in de INCLUDE- en LIB-paden van de compiler staan, zoals in het volgende:

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;  

Een ontwerpbeslissing die vroeg in het proces van het bouwen van een applicatie wordt genomen, is of de applicatie meerdere ODBC-aanroepen tegelijk moet hebben. Er zijn twee methoden om meerdere gelijktijdige ODBC-aanroepen te ondersteunen, die worden beschreven in de overige onderwerpen in deze sectie. Voor meer informatie, zie de ODBC Programmer's Reference.

In deze sectie