Опубликован: 20.12.2005 | Уровень: специалист | Доступ: платный | ВУЗ: Московский государственный университет имени М.В.Ломоносова
Лекция 2:

Функции ODBC API

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Аннотация: Рассматривается функциональная модель 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

Освобождает ресурсы, ассоциированные с указанным дескриптором (среды, соединения, оператора, приложения)
< Лекция 1 || Лекция 2: 123 || Лекция 3 >