Создание драйвера 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;

  • типы SQLGetInfo, относящиеся к драйверу ODBC для собственного клиента SQL Server;

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

  • диагностические коды динамических функций, относящиеся к SQL Server;

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

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

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

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

Любое приложение ODBC на языке C или C++, использующее функцию массового копирования драйвера ODBC для собственного клиента SQL Server, должно быть связано с файлом sqlncli10.lib. Приложения, вызывающие функции API-интерфейса метаданных распределенного запроса, должны быть также связаны с файлом sqlncli10.lib. Файлы sqlncli.h и sqlncli10.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.

См. также

Основные понятия