Skapa en drivrutinsapplikation

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Important

SQL Server Native Client (SNAC) levereras inte med:

  • SQL Server 2022 (16.x) och senare versioner
  • SQL Server Management Studio 19 och senare versioner

SQL Server Native Client (SQLNCLI eller SQLNCLI11) och den äldre Microsoft OLE DB-providern för SQL Server (SQLOLEDB) rekommenderas inte för ny programutveckling.

Använd någon av följande drivrutiner för nya projekt:

För SQLNCLI som levereras som en komponent i SQL Server-databasmotorn (versioner 2012 till och med 2019), se det här Support Lifecycle-undantag.

ODBC-arkitekturen har fyra komponenter som utför följande funktioner.

Component Funktion
Ansökan Anropar ODBC-funktioner för att kommunicera med en ODBC-datakälla, skickar in SQL-satser och bearbetar resultatuppsättningar.
Förarchef Hanterar kommunikationen mellan en applikation och alla ODBC-drivrutiner som används av applikationen.
Driver Bearbetar alla ODBC-funktionsanrop från applikationen, ansluter till en datakälla, skickar SQL-satser från applikationen till datakällan och returnerar resultat till applikationen. Vid behov översätter drivrutinen ODBC SQL från applikationen till den ursprungliga SQL som används av datakällan.
Datakälla Innehåller all information som en drivrutin behöver för att komma åt en specifik instans av data i ett DBMS.

En applikation som använder SQL Server Native Client ODBC-drivrutin för att kommunicera med en instans av SQL Server utför följande uppgifter:

  • Kopplar till en datakälla

  • Skickar SQL-satser till datakällan

  • Bearbetar resultaten av satser från datakällan

  • Processar fel och meddelanden

  • Avbryter anslutningen till datakällan

En mer komplex applikation skriven för SQL Server Native Client ODBC-drivrutinen kan också utföra följande uppgifter:

  • Använd markörer för att styra platsen i en resultatuppsättning

  • Begäran om commit eller rollback-operationer för transaktionskontroll

  • Utför distribuerade transaktioner som involverar två eller fler servrar

  • Kör lagrade procedurer på fjärrservern

  • Anropa katalogfunktioner för att fråga om attributen för en resultatmängd

  • Utför bulkkopieringsoperationer

  • Hantera stora dataoperationer (varchar(max),nvarchar(max) och varbinär(max) kolumner

  • Använd återanslutningslogik för att underlätta failover när databasspegling konfigureras

  • Loggprestandadata och långvariga förfrågningar

För att göra ODBC-funktionsanrop måste en C- eller C++-applikation inkludera headerfilerna sql.h, sqlext.h och sqltypes.h. För att göra anrop till ODBC:s installations-API-funktioner måste en applikation inkludera odbcinst.h:s headerfil. En Unicode ODBC-applikation måste inkludera sqlucode.h:s headerfil. ODBC-applikationer måste länkas till odbc32.lib-filen. ODBC-applikationer som anropar ODBC:s installations-API-funktioner måste länkas till odbccp32.lib-filen. Dessa filer ingår i Windows Platform SDK.

Många ODBC-drivrutiner, inklusive SQL Server Native Client ODBC-drivrutin, erbjuder drivrutinsspecifika ODBC-tillägg. För att dra nytta av SQL Server Native Client ODBC-drivrutinsspecifika tillägg bör en applikation inkludera headerfilen sqlncli.h. Denna headerfil innehåller:

  • SQL Server Native Client ODBC-drivrutinsspecifika anslutningsattribut.

  • SQL Server Native Client ODBC-drivrutinsspecifika satsattribut.

  • SQL Server Native Client ODBC-drivrutinsspecifika kolumnattribut.

  • SQL Server-specifika datatyper.

  • SQL Server-specifika användardefinierade datatyper.

  • SQL Server Native Client ODBC-drivrutinsspecifika SQLGetInfo-typer.

  • SQL Server Native Client ODBC-drivrutinsdiagnostikfält.

  • SQL Server-specifika diagnostiska dynamiska funktionskoder.

  • C/C++-typdefinitioner för SQL Server-specifika inbyggda C-datatyper (returnerade när kolumner är bundna till C-datatyp SQL_C_BINARY).

  • Typdefinition för SQLPERF-datastrukturen.

  • Masskopiera makron och prototyper för att stödja användning av bulkkopiering av API:er via en ODBC-anslutning.

  • Anropa funktionerna för distribuerad frågemetadata-API för listor över länkade servrar och deras kataloger.

Alla C- eller C++ ODBC-applikationer som använder bulkkopieringsfunktionen i SQL Server Native Client ODBC-drivrutinen måste länkas till sqlncli11.lib-filen. Applikationer som anropar API:s funktioner för distribuerad frågemetadata måste också länkas till sqlncli11.lib. sqlncli.h- och sqlncli11.lib-filerna distribueras som en del av SQL Server-utvecklarens verktyg. SQL Server Include- och Lib-katalogerna bör finnas i kompilatorns INCLUDE- och LIB-vägar enligt följande:

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;  

Ett designbeslut som tas tidigt i processen att bygga en applikation är om applikationen behöver ha flera ODBC-anrop utestående samtidigt. Det finns två metoder för att stödja flera samtidiga ODBC-anrop, vilka beskrivs i de övriga ämnena i detta avsnitt. För mer information, se ODBC Programmer's Reference.

I det här avsnittet