Функции ODBC API
Основные функции ODBC
Как уже отмечалось в предыдущей лекции, все функции ODBC API условно можно разделить на четыре группы:
- основные функции ODBC, обеспечивающие взаимодействие с источником данных;
- функции установки (setup DLL);
- функции инсталляции (installer DLL) ODBC и источников данных;
- функции преобразования данных (translation DLL), вызываемые при передаче данных от драйвера к источнику данных или обратно.
В следующей таблице представлен список основных функций ODBC API и их уровень соответствия стандартам (в столбце "Соответствие" показано соответствие стандартам и указана версия ODBC, начиная с которой данная функция доступна):
Функция | Соответствие | Описание |
---|---|---|
Соединение с источником данных | ||
SQLAllocHandle |
ISO 92 ODBC 3.0 |
Получает идентификатор (дескриптор) среды, соединения или оператора, или дескриптор приложения |
SQLConnect |
ISO 92 ODBC 1.0 |
Соединение с источником данных по DSN, имени и паролю пользователя |
SQLDriverConnect |
ODBC ODBC 1.0 |
Соединение с источником данных по указанной строке соединения или при помощи отображаемого диалога для интерактивного ввода параметров соединения |
SQLBrowseConnect |
ODBC ODBC 1.0 |
Последовательно запрашивает атрибуты соединения и устанавливает допустимые значения атрибута. После спецификации значения для каждого требуемого атрибута соединения функция выполняет соединение с источником данных |
Получение информации о драйверах и об источниках данных | ||
SQLDataSources |
ISO 92 ODBC1.0 |
Возвращает список доступных источников данных |
SQLDrivers |
ODBC ODBC2.0 |
Возвращает список установленных драйверов и их атрибуты |
SQLGetInfo |
ISO 92 ODBC1.0 |
Возвращает информацию об указанных драйвере и источнике данных |
SQLGetFunctions |
ISO 92 ODBC1.0 |
Возвращает функции, которые поддерживаются используемым драйвером |
SQLGetTypeInfo |
ISO 92 ODBC1.0 |
Возвращает информацию о поддерживаемых типах данных |
Изменение атрибутов драйверов и получение информации об атрибутах драйверов | ||
SQLSetConnectAttr |
ISO 92 ODBC3.0 |
Устанавливает атрибуты соединения |
SQLGetConnectAttr |
ISO 92 ODBC3.0 |
Возвращает значение атрибута соединения |
SQLSetEnvAttr |
ISO 92 ODBC3.0 |
Устанавливает атрибуты среды |
SQLGetEnvAttr |
ISO 92 ODBC3.0 |
Возвращает значение атрибута среды |
SQLSetStmtAttr |
ISO 92 ODBC3.0 |
Устанавливает атрибуты оператора |
SQLGetStmtAttr |
ISO 92 ODBC3.0 |
Возвращает значение атрибута оператора |
Изменение полей дескриптора и получение информации о полях дескриптора | ||
SQLGetDescField |
ISO 92 ODBC3.0 |
Возвращает значение дескриптора для одного поля |
SQLGetDescRec |
ISO 92 ODBC3.0 |
Возвращает значения дескриптора для нескольких полей |
SQLSetDescField |
ISO 92 ODBC3.0 |
Устанавливает значение дескриптора для одного поля |
SQLSetDescRec |
ISO 92 ODBC3.0 |
Устанавливает значение дескриптора для нескольких полей |
Подготовка SQL-запросов | ||
SQLPrepare |
ISO 92 ODBC1.0 |
Компилирует SQL-оператор для последующего выполнения |
SQLBindParameter |
ODBC ODBC2.0 |
Связывает буфер с параметрами, используемыми в SQL-операторе |
SQLGetCursorName |
ISO 92 ODBC1.0 |
Возвращает имя курсора, которое ассоциировано с дескриптором оператора |
SQLSetCursorName |
ISO 92 ODBC1.0 |
Определяет имя курсора |
SQLSetScrollOptions | ODBC1.0 | Устанавливает опции, которые управляют поведением курсора. В версиях ODBC 2.x и 3.x эта функция заменена функцией SQLSetStmtAttr |
Выполнение запросов | ||
SQLExecute |
ISO 92 ODBC1.0 |
Выполняет откомпилированный SQL-оператор |
SQLExecDirect |
ISO 92 ODBC1.0 |
Выполняет SQL-оператор |
SQLNativeSql |
ODBC ODBC1.0 |
Возвращает текст SQL-оператора, преобразованного конкретным драйвером, но не выполняет его |
SQLDescribeParam |
ODBC ODBC1.0 |
Возвращает описание параметров, используемых в откомпилированном SQL-операторе |
SQLNumParams |
ISO 92 ODBC1.0 |
Возвращает число параметров в откомпилированном SQL-операторе |
SQLParamData |
ISO 92 ODBC1.0 |
Используется совместно с функцией SQLPutData для передачи во время выполнения значений параметров |
SQLPutData |
ISO 92 ODBC1.0 |
Передает часть или все значения параметров |
Извлечение результатов и информации о них | ||
SQLRowCount |
ISO 92 ODBC1.0 |
Возвращает число строк, на которые воздействовал SQL-оператор insert, update или delete |
SQLNumResultCols |
ISO 92 ODBC1.0 |
Возвращает число столбцов в результирующем наборе |
SQLDescribeCol |
ISO 92 ODBC1.0 |
Описывает столбец результирующего набора, возвращая имя поля, его тип, размер и т.п |
SQLColAttribute |
ISO 92 ODBC3.0 |
Возвращает информацию о столбце результирующего набора. В отличие от функции SQLColAttribute, позволяет получить более обширную информацию о столбце, включая информацию, определяемую конкретным драйвером |
SQLBindCol |
ISO 92 ODBC1.0 |
Выполняет связывание буфера приложения-клиента со столбцами результирующего набора |
SQLFetch |
ISO 92 ODBC1.0 |
Извлекает данные одной следующей строки из результирующего набора, возвращая данные для всех связанных столбцов |
SQLFetchScroll |
ISO 92 ODBC3.0 |
Извлекает данные одной или нескольких строк из результирующего набора, возвращая данные для всех связанных столбцов. Функция позволяет явно указать, какую строку следует извлечь. Данная функция заменила функцию SQLExtendedFetch из ODBC 2.x |
SQLGetData |
ISO 92 ODBC1.0 |
Извлекает из результирующего набора значение одного столбца одной текущей строки. Для использования этой функции не требуется предварительное связывание столбцов |
SQLSetPos |
ODBC ODBC1.0 |
Позиционирует курсор в извлеченном блоке данных и позволяет приложению-клиенту: обновлять данные в строке, модифицировать или удалять данные в результирующем наборе |
SQLBulkOperations |
ODBC ODBC3.0 |
Выполняет несколько вставок или несколько помеченных операций, включая изменение, удаление и выборку по установленному маркеру |
SQLMoreResults |
ODBC ODBC1.0 |
Определяет, есть ли еще следующий результирующий набор, и при его наличии выполняет переход на него |
SQLGetDiagField |
ISO 92 ODBC3.0 |
Возвращает значение поля записи из структуры диагностической информации, ассоциированной с конкретным дескриптором (среды, соединения, оператора) |
SQLGetDiagRec |
ISO 92 ODBC3.0 |
Возвращает значения нескольких предопределенных полей записи из структуры диагностической информации, ассоциированной с конкретным дескриптором (среды, соединения, оператора) |
Функции каталога | ||
SQLColumnPrivileges |
ODBC ODBC1.0 |
Возвращает список полей и имеющиеся привилегии для одной или нескольких таблиц |
SQLColumns |
X/Open ODBC1.0 |
Возвращает список имен полей в указанной таблице |
SQLForeignKeys |
ODBC ODBC1.0 |
Возвращает список полей, которые составляют внешние ключи таблицы, если они созданы |
SQLPrimaryKeys |
ODBC ODBC1.0 |
Возвращает список полей, которые составляют первичный ключ таблицы |
SQLProcedureColumns |
ODBC ODBC1.0 |
Возвращает в виде результирующего набора список входных и выходных параметров указанной процедуры |
SQLProcedures | ODBCODBC1.0 | Возвращает список хранимых процедур для подключенного источника данных |
SQLSpecialColumns |
X/Open ODBC1.0 |
Получает информацию об оптимальном наборе полей, уникально идентифицирующих строку в указанной таблице, или имя поля, которое автоматически обновляется при изменении какого-либо поля в строке |
SQLStatistics |
ISO 92 ODBC1.0 |
Возвращает информацию о таблице и список индексов, ассоциированных с ней |
SQLTablePrivileges |
ODBC ODBC1.0 |
Возвращает в виде результирующего набора список таблиц и привилегии, назначенные для каждой таблицы |
SQLTables |
X/Open ODBC1.0 |
Возвращает в виде результирующего набора список таблиц, хранимых в указанном источнике данных |
Освобождение оператора | ||
SQLFreeStmt |
ISO 92 ODBC1.0 |
Завершает обработку оператора, удаляет результирующий набор и освобождает все ресурсы, ассоциированные с данным дескриптором оператора |
SQLCloseCursor |
ISO 92 ODBC3.0 |
Закрывает курсор, открытый с данным дескриптором оператора, и удаляет результирующий набор |
SQLCancel |
ISO 92 ODBC1.0 |
Завершает выполнение SQL-оператора, прекращая асинхронное выполнение функции, выполнение функции, требующей данные, или функции, выполняемой в другом потоке. В отличие от версии 2.x, данная функция не может выполнить освобождение дескриптора оператора, и требуется явный вызов функции SQLFreeStmt |
SQLEndTran |
ISO 92 ODBC3.0 |
Выполняет завершение или откат транзакции |
Освобождение соединения | ||
SQLDisconnect |
ISO 92 ODBC1.0 |
Закрывает соединение с источником данных |
SQLFreeHandle |
ISO 92 ODBC3.0 |
Освобождает ресурсы, ассоциированные с указанным дескриптором (среды, соединения, оператора, приложения) |