Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо:SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
azure Synapse Analytics Analytics
Platform System (PDW)
Open Database Connectivity (ODBC) — это API Microsoft Win32, который позволяет приложениям получать доступ к данным в источниках данных, совместимых с ODBC. В этой статье объясняется, как ODBC обрабатывает вызовы функций, управляет дескрипторами, взаимодействует с драйверами и предоставляет диагностику. Это дает разработчикам более четкое представление о том, как ODBC работает между приложениями, диспетчером драйверов и драйверами базы данных.
Справочник по драйверу ODBC собственного клиента SQL Server не документируйте каждую функцию ODBC. Он документирует только эти функции с параметрами или поведением, уникальными для драйвера ODBC собственного клиента SQL Server.
Драйвер ODBC собственного клиента SQL Server соответствует спецификации ODBC 3.51. Полный справочный материал скачайте пакет SDK для компонентов Microsoft Data Access из Центра разработчиков доступа к данным и хранилищу или просмотрите справочник программиста ODBC.
Как работает API ODBC
ODBC предоставляет стандартизированный интерфейс между приложениями и драйверами базы данных. Когда приложение вызывает функцию ODBC, вызов проходит через несколько слоев перед достижением источника данных. Понимание этой архитектуры помогает создавать более эффективный код и устранять проблемы с подключением.
Модель дескриптора ODBC
ODBC использует четыре типа иерархических дескрипторов для управления состоянием:
| Тип дескриптора | Цель |
|---|---|
| Среда (HENV) | Глобальные параметры ODBC и управление версиями |
| Подключение (HDBC) | Представляет подключение к конкретному источнику данных |
| Оператор (HSTMT) | Управляет инструкциями SQL, параметрами и результирующих наборами |
| Дескриптор (HDESC) | Сохраняет метаданные для параметров и столбцов |
Взаимодействие диспетчера драйверов и драйвера
- Приложение вызывает API ODBC.
- Диспетчер драйверов проверяет параметры и отправляет вызов.
- Драйвер взаимодействует с источником данных.
- Результаты возвращаются через диспетчер драйверов в приложение.
Жизненный цикл вызова функции
- Выделение дескрипторов.
- Задайте атрибуты среды или подключения.
- Подключитесь к источнику данных.
- Подготовка или выполнение инструкций SQL.
- Привязка параметров или столбцов результатов.
- Получение строк.
- Бесплатные дескрипторы.
Диагностика и обработка ошибок
Используйте следующие диагностические функции:
SQLGetDiagRecSQLGetDiagField
Диагностика может применяться к средам, соединениям или дескрипторам инструкций.
Вызовы Юникода и ANSI
ODBC предоставляет два типа функций:
-
Функции ANSI , такие как
SQLExecDirectA -
Функции Юникода , такие как
SQLExecDirectW
Используйте API Юникода для современных приложений.
Потоки и пул
- Безопасность потоков зависит от того, как приложение настраивает драйвер и диспетчер драйверов.
- Чтобы сократить затраты на подключение, включите пул подключений на любом уровне.
Справочник по API ODBC
Следующие разделы группирует функции API ODBC по задачам. Каждая запись ссылается на подробную справочную страницу драйвера собственного клиента SQL Server.
Подключение и источник данных
Используйте эти функции для установления, настройки и управления подключениями к SQL Server.
| Функция | Description |
|---|---|
| SQLConnect | Установка подключения к источнику данных с помощью DSN, идентификатора пользователя и пароля |
| SQLDriverConnect | Подключение с помощью строки подключения с ключевыми словами для конкретного драйвера |
| SQLBrowseConnect | Интерактивное обнаружение атрибутов подключения для создания строки подключения |
| SQLConfigDataSource | Создание, изменение или удаление имен источников данных (DSN) программным способом |
| SQLDrivers | Список всех установленных драйверов ODBC и их атрибутов |
| SQLGetConnectAttr | Получение текущего значения атрибута подключения |
| SQLSetConnectAttr | Настройка поведения подключения, например тайм-аутов и изоляции транзакций |
Выполнение инструкций SQL
Используйте эти функции для подготовки, выполнения и управления инструкциями SQL.
| Функция | Description |
|---|---|
| SQLExecDirect | Выполнение инструкции SQL немедленно без подготовки |
| SQLExecute | Выполнение ранее подготовленной инструкции SQL |
| SQLCancel | Отмена выполнения инструкции во время выполнения |
| SQLNativeSql | Перевод синтаксиса ODBC SQL на собственный диалект SQL драйвера |
| SQLEndTran | Фиксация или откат транзакции в соединении или среде |
Привязка параметров и столбцов
Используйте эти функции для привязки переменных приложения к параметрам SQL и столбцам результирующего набора.
| Функция | Description |
|---|---|
| SQLBindParameter | Привязка буфера приложения к маркеру параметра инструкции SQL |
| SQLBindCol | Привязка буфера приложения к столбцу результирующих наборов |
| SQLParamData | Получение следующего параметра, требующего данных во время операций выполнения данных |
| SQLPutData | Отправка данных параметров в блоках во время выполнения инструкции |
| SQLDescribeParam | Получение типа данных и размера маркера параметра |
| SQLNumParams | Подсчет количества параметров в подготовленной инструкции |
Получение и обработка результатов
Используйте эти функции для получения данных из результирующих наборов и обработки результатов запроса.
| Функция | Description |
|---|---|
| SQLFetch | Получение следующего набора строк данных и возврат связанных значений столбцов |
| SQLFetchScroll | Получение набора строк в абсолютной или относительной позиции в результирующем наборе |
| SQLGetData | Получение данных для одного несвязанного столбца или больших данных в блоках |
| SQLMoreResults | Переход к следующему результирующий набор, когда инструкция возвращает несколько результатов |
| SQLRowCount | Получение количества строк, затронутых инструкцией INSERT, UPDATE или DELETE |
| SQLCloseCursor | Закройте курсор и отмените ожидающие результаты |
| SQLGetCursorName | Получение имени, связанного с курсором инструкции |
Обнаружение схемы и метаданных
Используйте эти функции для запроса сведений о схеме базы данных, таких как таблицы, столбцы и ключи.
| Функция | Description |
|---|---|
| SQLTables | Вывод списка таблиц, представлений и других объектов, таких как таблица, в источнике данных |
| SQLColumns | Вывод списка столбцов и их атрибутов для указанных таблиц |
| SQLPrimaryKeys | Получение столбцов первичного ключа для таблицы |
| SQLForeignKeys | Вывод списка внешних ключей для таблицы или внешних ключей в других таблицах, ссылающихся на нее. |
| SQLSpecialColumns | Определение столбцов, которые однозначно определяют строку или обновляются автоматически. |
| SQLStatistics | Получение сведений о индексе и статистике таблиц |
| SQLProcedures | Перечисление хранимых процедур, доступных в источнике данных |
| SQLProcedureColumns | Описание входных и выходных параметров и столбцов результатов для хранимых процедур |
Метаданные столбца и результирующих наборов
Используйте эти функции для изучения структуры результирующих наборов и атрибутов столбцов.
| Функция | Description |
|---|---|
| SQLDescribeCol | Получение имени столбца, типа, размера и значения NULL для результирующих столбцов |
| SQLColAttribute | Получение определенного атрибута столбца результирующих наборов |
| SQLNumResultCols | Подсчет количества столбцов в результирующем наборе |
| SQLGetTypeInfo | Вывод списка типов данных SQL, поддерживаемых источником данных |
Привилегии и безопасность
Используйте эти функции для получения сведений о разрешениях для объектов базы данных.
| Функция | Description |
|---|---|
| SQLTablePrivileges | Перечисление привилегий, предоставленных таблицам в источнике данных |
| SQLColumnPrivileges | Перечисление привилегий, предоставленных для определенных столбцов таблицы |
Атрибуты среды и инструкции
Используйте эти функции для настройки поведения среды ODBC и инструкций.
| Функция | Description |
|---|---|
| SQLSetEnvAttr | Настройка атрибутов среды, таких как версия ODBC и пул подключений |
| SQLGetStmtAttr | Получение текущего значения атрибута инструкции |
| SQLSetStmtAttr | Настройка поведения инструкции, например типа курсора и времени ожидания запроса |
Дескрипторы
Используйте эти функции для непосредственного управления записями дескриптора для расширенной обработки параметров и столбцов.
| Функция | Description |
|---|---|
| SQLGetDescField | Получение одного поля из записи дескриптора |
| SQLSetDescField | Установка одного поля в записи дескриптора |
| SQLSetDescRec | Установка нескольких полей в записи дескриптора одним вызовом |
Сведения о диагностике и драйвере
Используйте эти функции для получения сведений об ошибках и возможностей драйвера запросов.
| Функция | Description |
|---|---|
| SQLGetDiagField | Получение поля диагностики из среды, подключения или инструкции |
| SQLGetInfo | Получение общих сведений о возможностях драйвера и источника данных |
| SQLGetFunctions | Определение функций ODBC, поддерживаемых драйвером |
Очистка ресурсов
Используйте эти функции для выпуска дескрипторов и бесплатных ресурсов.
| Функция | Description |
|---|---|
| SQLFreeHandle | Выпуск среды, соединения, оператора или дескриптора |
| SQLFreeStmt | Ресурсы бесплатных инструкций, закрытие курсоров или отмена привязки параметров и столбцов |