Создание приложения драйвера ODBC для собственного клиента SQL Server

Архитектура 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)