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


Справочник по API ODBC

Область применения:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL Azure

API ODBC предоставляет стандартный набор функций для подключения к источникам данных, выполнения инструкций SQL и получения результатов. Каждая функция — это функция языка программирования C с описаниями, включающими назначение, версию ODBC, синтаксис, аргументы, возвращаемые значения, диагностику и примеры кода.

Стандартный уровень соответствия CLI может быть одним из следующих: ISO 92, Open Group, ODBC или Не рекомендуется. Функция, помеченная как ISO 92, также отображается в Open Group версии 1, так как Open Group является чистым супермножеством ISO 92. Функция, помеченная как open Group-совместимая, также отображается в ODBC 3.x, так как ODBC 3.x является чистым супермножеством Open Group версии 1. Функция, помеченная как ODBC-совместимая, не отображается в любом стандарте. Функция, помеченная как устаревшая, не рекомендуется использовать в ODBC 3.x.

Описание функции SQLGetDiagField описывает, как обрабатывать диагностические сведения. Текст, связанный со значениями SQLSTATE, содержит описание условия, но не предписывает конкретный текст.

Замечание

Сведения о функциях ODBC для конкретного драйвера см. в разделе драйвера.

Обработка выделения и управления

Эти функции выделяют и освобождают дескрипторы сред, подключений, инструкций и дескрипторов. Дескриптор — это основной механизм отслеживания состояния в приложениях ODBC.

Функция Description
SQLAllocHandle Выделяет среду, соединение, оператор или дескриптор. Это функция ODBC 3.x, которая заменяет устаревшие функции выделения.
SQLFreeHandle Освобождает среду, соединение, оператор или дескриптор дескриптор и освобождает связанные ресурсы.
SQLAllocConnect Выделяет дескриптор подключения. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLAllocHandle .
SQLAllocEnv Выделяет дескриптор среды. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLAllocHandle .
SQLAllocStmt Выделяет дескриптор инструкции. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLAllocHandle .
SQLFreeConnect Освобождает дескриптор подключения. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLFreeHandle .
SQLFreeEnv Освобождает дескриптор среды. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLFreeHandle .
SQLFreeStmt Останавливает обработку инструкций, закрывает связанные курсоры, удаляет ожидающие результаты и при необходимости освобождает ресурсы, связанные с дескриптором инструкции.

Функции подключения

Эти функции устанавливают подключения к источникам данных и управляют ими. Они поддерживают различные методы подключения, включая стандартные подключения, диалоги для конкретного драйвера и итеративное просмотр.

Функция Description
SQLConnect Устанавливает подключение к источнику данных с помощью имени источника данных, идентификатора пользователя и пароля.
SQLDriverConnect Устанавливает подключение с помощью строки подключения. Поддерживает диалоговые окна, относящиеся к драйверу, для получения дополнительных сведений о подключении.
SQLBrowseConnect Поддерживает итеративный метод обнаружения и перечисления атрибутов, необходимых для подключения к источнику данных.
SQLDisconnect Закрывает подключение к источнику данных и освобождает связанные ресурсы.
SQLDataSources Возвращает список доступных источников данных. Вызывается диспетчер драйверов, а не конкретный драйвер.
SQLDrivers Возвращает список установленных драйверов и их атрибутов. Вызывается диспетчер драйверов.

Подготовка и выполнение инструкций

Эти функции подготавливают и выполняют инструкции SQL. ODBC поддерживает как прямое выполнение, так и подготовленное выполнение, при этом подготовленная производительность обеспечивает более высокую производительность для многократно выполняемых инструкций.

Функция Description
SQLPrepare Подготавливает инструкцию SQL для последующего выполнения. Источник данных компилирует и оптимизирует инструкцию.
SQLExecute Выполняет подготовленную инструкцию. Вызов перед SQLPrepare вызовом этой функции.
SQLExecDirect Подготавливает и выполняет инструкцию SQL в одном вызове. Используйте для инструкций, выполняемых только один раз.
SQLNativeSql Возвращает строку SQL, измененную драйвером, показывающую, как драйвер преобразует синтаксис ODBC SQL.
SQLCancel Отменяет обработку инструкции. Может отменить асинхронную функцию или функцию, запущенную в другом потоке.
SQLCancelHandle Отменяет обработку при подключении или инструкции. Более гибким, чем SQLCancel для отмены функций подключения.
SQLCompleteAsync Определяет, когда асинхронная функция завершает работу. Используется с асинхронной обработкой на основе уведомлений.

Привязка параметров

Эти функции привязывают переменные приложения к маркерам параметров в инструкциях SQL. Параметры позволяют включить динамические значения в подготовленных инструкциях.

Функция Description
SQLBindParameter Привязывает переменную приложения к маркеру параметров в инструкции SQL. Поддерживает входные, выходные и входные и выходные параметры.
SQLNumParams Возвращает количество параметров в инструкции SQL.
SQLDescribeParam Возвращает описание маркера параметра, включая тип данных, размер и точность.
SQLParamData Используется для SQLPutData предоставления данных параметров во время выполнения. Возвращает параметр, требующий данных.
SQLPutData Отправляет часть или все значения данных для параметра во время выполнения. Поддерживает большие данные в блоках.
SQLSetParam Привязывает параметр. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLBindParameter .
SQLParamOptions Задает параметры массивов параметров. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте атрибуты инструкции.

Привязка и извлечение результирующих наборов

Эти функции привязывают буферы приложений к столбцам результирующего набора и извлекают данные из результатов запроса.

Функция Description
SQLBindCol Привязывает переменную приложения к столбцу результирующих наборов для последующих операций получения.
SQLFetch Извлекает следующий набор строк данных из результирующего набора в привязанные столбцы.
SQLFetchScroll Извлекает указанный набор строк из результирующий набор. Поддерживает прокрутку до первого, последнего, следующего, предыдущего, абсолютного и относительного позиций.
SQLGetData Извлекает данные для одного столбца после SQLFetch или SQLFetchScroll. Полезно для больших данных или несвязанных столбцов.
Sqlextendedfetch Извлекает указанный набор строк данных. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLFetchScroll .
SQLMoreResults Определяет, доступны ли дополнительные результаты в инструкции и переход к следующему результирующем набору.
SQLRowCount Возвращает количество строк, затронутых инструкцией UPDATE, INSERT или DELETE.

Операции курсора

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

Функция Description
SQLSetPos Задает положение курсора в наборе строк и позволяет приложениям обновлять, обновлять или удалять данные по этой позиции.
SQLBulkOperations Выполняет операции массового вставки, обновления, удаления или извлечения по закладкам в наборах строк.
SQLCloseCursor Закрывает курсор, открытый в инструкции, и удаляет ожидающие результаты.
SQLGetCursorName Возвращает имя курсора, связанное с инструкцией.
SQLSetCursorName Задает имя курсора для позиционированных инструкций UPDATE и DELETE.
SQLSetScrollOptions Задает параметры поведения курсора. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте атрибуты инструкции.

Функции каталога

Эти функции извлекают метаданные о структуре базы данных, включая таблицы, столбцы, индексы, привилегии и хранимые процедуры.

Функция Description
SQLTables Возвращает список имен таблиц в источнике данных. Поддерживает фильтрацию по каталогу, схеме и типу таблицы.
Sqlcolumns Возвращает список имен столбцов и их атрибутов для указанных таблиц.
SQLPrimaryKeys Возвращает столбцы, составляющие первичный ключ для таблицы.
SQLForeignKeys Возвращает внешние ключи в таблице или внешних ключах в других таблицах, ссылающихся на первичный ключ таблицы.
SQLStatistics Возвращает статистику о таблице и списке индексов, связанных с ним.
SQLSpecialColumns Возвращает столбцы, которые однозначно определяют строку или столбцы, которые автоматически обновляются при обновлении любого значения в строке.
SQLColumnPrivileges Возвращает список столбцов и связанных привилегий для таблицы.
SQLTablePrivileges Возвращает список таблиц и привилегий, связанных с каждой таблицей.
SQLProcedures Возвращает список имен хранимых процедур в источнике данных.
SQLProcedureColumns Возвращает список входных и выходных параметров и столбцов в результирующем наборе для указанных процедур.
SQLGetTypeInfo Возвращает сведения о типах данных, поддерживаемых источником данных.

Дескрипторные операции

Эти функции получают и задают значения дескриптора. Дескрипторы содержат метаданные о параметрах и столбцах результирующего набора.

Функция Description
SQLGetDescField Возвращает значение одного поля записи дескриптора.
SQLGetDescRec Возвращает несколько полей записи дескриптора в одном вызове.
SQLSetDescField Задает значение одного поля записи дескриптора.
SQLSetDescRec Задает несколько полей записи дескриптора в одном вызове.
SQLCopyDesc Копирует сведения дескриптора из одного дескриптора в другой.

Функции атрибутов

Эти функции получают и задают атрибуты для сред, подключений и инструкций. Атрибуты управляют различными аспектами поведения ODBC.

Функция Description
SQLSetEnvAttr Задает атрибут среды, который влияет на все подключения в этой среде.
SQLGetEnvAttr Возвращает значение атрибута среды.
SQLSetConnectAttr Задает атрибут подключения, который влияет на подключение и инструкции на него.
SQLGetConnectAttr Возвращает значение атрибута подключения.
SQLSetStmtAttr Задает атрибут оператора. Включает параметры курсора, времени ожидания запроса и параметров.
SQLGetStmtAttr Возвращает значение атрибута оператора.
SQLSetConnectOption Задает параметр подключения. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLSetConnectAttr .
SQLGetConnectOption Возвращает значение параметра подключения. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLGetConnectAttr .
SQLSetStmtOption Задает параметр инструкции. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLSetStmtAttr .
SQLGetStmtOption Возвращает значение параметра оператора. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLGetStmtAttr .

Функции диагностики и информации

Эти функции извлекают диагностические сведения, сообщения об ошибках, возможности драйвера и сведения об источнике данных.

Функция Description
SQLGetDiagField Возвращает значение поля в диагностической записи, содержащей сведения об ошибке, предупреждении и состоянии.
SQLGetDiagRec Возвращает несколько часто используемых полей диагностической записи, включая SQLSTATE, код машинной ошибки и текст сообщения.
Sqlerror Возвращает сведения об ошибке. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLGetDiagRec .
SQLGetFunctions Возвращает сведения о том, поддерживает ли драйвер определенную функцию ODBC.
SQLGetInfo Возвращает общие сведения об драйвере и источнике данных, включая поддерживаемые функции и возможности.

Метаданные результирующих наборов

Эти функции возвращают сведения о структуре результирующих наборов.

Функция Description
SQLNumResultCols Возвращает количество столбцов в результирующем наборе.
SQLDescribeCol Возвращает имя столбца, тип данных, точность, масштабирование и значение NULL для столбца результирующих наборов.
SQLColAttribute Возвращает сведения о дескрипторе для столбца в результирующем наборе. Более гибким, чем SQLDescribeCol.
SQLColAttributes Возвращает атрибуты для столбца. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLColAttribute .

Управление транзакциями

Эти функции управляют границами транзакций, управляя фиксацией или откатом изменений.

Функция Description
SQLEndTran Фиксирует или откатывает транзакцию. Может применяться ко всем подключениям в среде или одном подключении.
SQLTransact Фиксирует или откатывает транзакцию. Не рекомендуется использовать в ODBC 3.x; вместо этого используйте SQLEndTran .