Поделиться через


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Управление операциями больших данных (столбцы 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 Native Client, предлагают расширения ODBC для конкретных драйверов. Чтобы воспользоваться преимуществами SQL Server Native Client расширений драйвера ODBC, приложение должно включать файл заголовка sqlncli.h. Этот файл заголовка содержит следующее:

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

  • SQL Server Native Client атрибуты инструкций драйвера ODBC.

  • SQL Server Native Client атрибуты столбцов, зависящих от драйвера ODBC.

  • SQL Server типы данных.

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

  • SQL Server Native Client типы SQLGetInfo для конкретного драйвера ODBC.

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

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

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

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

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

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

Любое приложение ODBC на C или C++, использующее функцию массового копирования драйвера SQL SERVER NATIVE CLIENT ODBC, должно быть связано с файлом 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)