Tworzenie aplikacji sterownika

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Important

Klient natywny SQL Servera (SNAC) nie jest dostarczany z:

  • SQL Server 2022 (16.x) i nowsze wersje
  • SQL Server Management Studio 19 i nowsze wersje

Program SQL Server Native Client (SQLNCLI lub SQLNCLI11) oraz starszy dostawca microsoft OLE DB dla programu SQL Server (SQLOLEDB) nie są zalecane w przypadku tworzenia nowych aplikacji.

W przypadku nowych projektów użyj jednego z następujących sterowników:

W przypadku programu SQLNCLI dostarczanego jako składnik aparatu bazy danych programu SQL Server (wersje 2012–2019), proszę sprawdzić wyjątek cyklu wsparcia .

Architektura ODBC składa się z czterech komponentów, które wykonują następujące funkcje.

Składnik Funkcja
Application Wywołuje funkcje ODBC do komunikacji ze źródłem danych ODBC, przesyła instrukcje SQL i przetwarza zbiory wyników.
Driver Manager Zarządza komunikacją między aplikacją a wszystkimi sterownikami ODBC używanymi przez aplikację.
Driver Przetwarza wszystkie wywołania funkcji ODBC z aplikacji, łączy się ze źródłem danych, przekazuje instrukcje SQL z aplikacji do źródła danych oraz zwraca wyniki do aplikacji. W razie potrzeby sterownik tłumaczy ODBC SQL z aplikacji na natywne SQL używane przez źródło danych.
Źródło danych Zawiera wszystkie informacje potrzebne sterownikowi do uzyskania dostępu do konkretnej instancji danych w DBMS.

Aplikacja, która korzysta z sterownika ODBC natywnego klienta SQL Server do komunikacji z instancją SQL Server, wykonuje następujące zadania:

  • Łączy się ze źródłem danych

  • Wysyła instrukcje SQL do źródła danych

  • Przetwarza wyniki stwierdzeń ze źródła danych

  • Przetwarza błędy i komunikaty

  • Kończy połączenie ze źródłem danych

Bardziej złożona aplikacja napisana dla sterownika ODBC SQL Server Native Client może również wykonywać następujące zadania:

  • Używaj kursorów do sterowania lokalizacją w zbiorze wyników

  • Żądaj operacji zatwierdzania lub cofania do kontroli transakcji

  • Wykonuj rozproszone transakcje z udziałem dwóch lub więcej serwerów

  • Uruchamiaj procedury przechowywane na serwerze zdalnym

  • Funkcje katalogowe wywołują zapytanie o atrybuty zbioru wyników

  • Wykonuj operacje kopiowania masowego

  • Zarządzanie operacjami dużych danych (varchar(max),nvarchar(max) i varbinary(max) kolumn)

  • Użyj logiki ponownego połączenia, aby ułatwić przełączanie awaryjne podczas konfigurowania mirroringu bazy danych

  • Dane wydajności logów i długoletnie zapytania

Aby wykonać wywołania funkcji ODBC, aplikacja C lub C++ musi zawierać pliki nagłówków sql.h, sqlext.h i sqltypes.h. Aby wykonywać wywołania funkcji API instalatora ODBC, aplikacja musi zawierać plik nagłówka odbcinst.h. Aplikacja Unicode ODBC musi zawierać plik nagłówka sqlucode.h. Aplikacje ODBC muszą być powiązane z plikiem odbc32.lib. Aplikacje ODBC, które wywołują funkcje API instalatora ODBC, muszą być powiązane z plikiem odbccp32.lib. Pliki te są zawarte w zasadzie Windows Platform SDK.

Wiele sterowników ODBC, w tym sterownik ODBC dla natywnego klienta SQL Server, oferuje rozszerzenia ODBC specyficzne dla sterowników. Aby skorzystać z natywnych rozszerzeń ODBC w SQL Server, aplikacja powinna zawierać plik nagłówka sqlncli.h. Ten plik nagłówka zawiera:

  • SQL Server Native Client ODBC specyficzne atrybuty połączenia sterownika.

  • Natywne atrybuty instrukcji dla sterowników ODBC w kliencie natywnego klienta SQL Server.

  • Natywne atrybuty kolumn dla SQL Server Client, ODBC, specyficzne dla sterownika.

  • Specyficzne dla SQL Server typowe dla danych danych.

  • Specyficzne dla użytkownika typy danych zdefiniowane przez użytkownika specyficzne dla SQL Server.

  • SQL Server Natywny klient ODBC specyficzne dla sterowników SQLGetInfo typy.

  • Natywne pola diagnostyczne sterownika ODBC dla natywnego klienta SQL Server.

  • Specyficzne dla SQL Server kody dynamiczne diagnostyczne.

  • Definicje typów C/C++ dla natywnych typów danych C specyficznych dla SQL Server (zwracane, gdy kolumny są powiązane z typem danych C SQL_C_BINARY).

  • Definicja typu dla struktury danych SQLPERF.

  • Masowe kopiowanie makr i prototypów, aby wspierać masowe kopiowanie API przez połączenie ODBC.

  • Funkcje API metadanych zapytań wywołaj dla list powiązanych serwerów i ich katalogów.

Każda aplikacja ODBC w C lub C++, która korzysta z funkcji masowego kopiowania sterownika ODBC SQL Server Native Client, musi być połączona z plikiem sqlncli11.lib. Aplikacje wywołujące funkcje API metadanych zapytań muszą być również powiązane z sqlncli11.lib. Pliki sqlncli.h i sqlncli11.lib są dystrybuowane jako część narzędzi programistów SQL Server. Katalogi SQL Server Include i Lib powinny znajdować się w ścieżkach INCLUDE i LIB kompilatora, w następujących miejscach:

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;  

Jedną z decyzji projektowych podjętych na wczesnym etapie budowy aplikacji jest to, czy aplikacja musi mieć kilka wywołań ODBC jednocześnie oczekiwanych. Istnieją dwie metody wspierania wielu jednoczesnych wywołań ODBC, które zostały opisane w pozostałych tematach tej sekcji. Więcej informacji można znaleźć w sekcji ODBC Programmer's Reference.

W tej Sekcji