Создание приложения драйвера

Применимо к:SQL ServerAzure SQL DatabaseAzure Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Внимание

Собственный клиент SQL Server (часто сокращенный SNAC) был удален из SQL Server 2022 (16.x) и SQL Server Management Studio 19 (SSMS). Собственный клиент SQL Server (SQLNCLI или SQLNCLI11) и устаревший поставщик Microsoft OLE DB для SQL Server (SQLOLEDB) не рекомендуется для разработки новых приложений. Перейдите на новый драйвер Microsoft OLE DB (MSOLEDBSQL) для SQL Server или последний драйвер Microsoft ODBC для SQL Server . Сведения о SQLNCLI, которые поставляется в качестве компонента ядра СУБД SQL Server (версии 2012–2019), см. в этом исключении жизненного цикла поддержки.

В архитектуре ODBC имеется четыре компонента, которые выполняют следующие функции.

Компонент Функция
Приложение Вызывает функции ODBC для связи с источником данных ODBC, поставляет инструкции SQL и обрабатывает результирующие наборы.
Диспетчер драйверов Управляет связью между приложением и всеми драйверами ODBC, используемыми приложением.
Драйвер Обрабатывает вызовы всех функций ODBC из приложения, передает инструкции SQL из приложения в источник данных и возвращает результаты приложению. При необходимости драйвер переводит ODBC SQL из приложения в собственный SQL, используемый источником данных.
Источник данных Содержит все необходимые драйверу сведения для доступа к конкретному экземпляру данных в СУБД.

Приложение, использующее драйвер ODBC собственного клиента SQL Server для взаимодействия с экземпляром SQL Server, выполняет следующие задачи:

  • соединяется с источником данных;

  • отправляет инструкции SQL в источник данных;

  • обрабатывает результаты инструкций из источника данных;

  • обрабатывает сообщения об ошибках;

  • Закрывает соединение с источником данных.

Более сложное приложение, написанное для драйвера ODBC собственного клиента SQL Server, может выполнять следующие задачи:

  • использовать курсоры для управления расположением в результирующем наборе;

  • запрашивать операции фиксации или отката для управления транзакциями;

  • выполнять распределенные транзакции между двумя или несколькими серверами;

  • запускать хранимые процедуры на удаленном сервере;

  • вызывать функции каталога для запроса сведений об атрибутах результирующего набора;

  • выполнять операции массового копирования;

  • Управление большими данными (varchar(max), nvarchar(max), а также операциями varbinary(max)

  • использовать логику повторного соединения для облегчения отработки отказа при настроенном зеркальном отображении базы данных;

  • записывать в журнал данные о производительности и о долго выполняемых запросах.

Для использования функций ODBC приложение на языке C или C++ должно включать файлы заголовка sql.h, sqlext.h и sqltypes.h. Для использования функций API-интерфейса установщика ODBC, приложение должно включать файл заголовка odbcinst.h. Приложение, использующее ODBC и Юникод, должно включать файл заголовка sqlucode.h. Приложения ODBC должны быть связаны с файлом odbc32.lib. Приложения ODBC, вызывающие функции API-интерфейса установщика ODBC, должны быть связаны с файлом odbccp32.lib. Эти файлы включены в пакет SDK платформы Windows.

Многие драйверы ODBC, включая драйвер ODBC собственного клиента SQL Server, предлагают расширения ODBC для конкретного драйвера. Чтобы воспользоваться преимуществами расширений драйвера ODBC для собственного клиента SQL Server, приложение должно включать файл заголовка sqlncli.h. Этот файл заголовка содержит следующее:

  • Атрибуты подключения для драйвера ODBC для собственного клиента SQL Server.

  • Атрибуты инструкции ODBC для собственного клиента SQL Server.

  • Атрибуты столбцов, относящихся к драйверу ODBC для собственного клиента SQL Server.

  • Типы данных, относящиеся к SQL Server.

  • Определяемые пользователем типы данных SQL Server.

  • Типы SQL Server Native Client ODBC для драйвера SQLGetInfo .

  • Поля диагностики драйвера ODBC собственного клиента SQL Server.

  • Коды динамических функций для конкретной диагностики SQL Server.

  • Определения типов C/C++ для собственных типов данных C Sql Server (возвращаются, когда столбцы привязаны к типу данных C SQL_C_BINARY).

  • определение типа для структуры данных SQLPERF;

  • макросы и прототипы массового копирования для поддержки API-интерфейса массового копирования через соединение ODBC;

  • вызов функций API-интерфейса метаданных распределенного запроса для списков связанных серверов и их каталогов.

Любое приложение ODBC C или C++, использующее функцию массового копирования драйвера ODBC собственного клиента SQL Server, должно быть связано с файлом sqlncli11.lib. Приложения, вызывающие функции API-интерфейса метаданных распределенного запроса, также должны компоноваться с файлом sqlncli11.lib. Файлы sqlncli.h и sqlncli11.lib распределяются в рамках средств разработчика SQL Server. Каталоги SQL Server Include и Lib должны находиться в путях INCLUDE и LIB компилятора, как показано ниже.

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;  

На раннем этапе разработки приложения необходимо решить, будет ли приложение нуждаться в нескольких одновременных вызовах ODBC. Существует два метода поддержки нескольких одновременных вызовов ODBC. Они описаны в оставшихся разделах этой темы. Дополнительные сведения см. в справочнике программиста ODBC.

В этом разделе

См. также

SQL Server Native Client (ODBC)