Соответствие основного интерфейса

Все драйверы ODBC должны иметь по крайней мере соответствие интерфейса на уровне ядра. Поскольку функции на уровне ядра являются обязательными для большинства универсальных приложений взаимодействия, драйвер может работать с такими приложениями. Функции на уровне ядра также соответствуют функциям, определенным в спецификации ISO CLI, и неоптимальным функциям, определенным в спецификации Open Group CLI. Драйвер ODBC на уровне ядра позволяет приложению выполнять все указанные ниже действия.

  • Выделение и освобождение всех типов дескрипторов путем вызова SQLAllocHandle и SQLFreeHandle.

  • Используйте все формы функции SQLFreeStmt .

  • Привязка столбцов результирующего набора путем вызова SQLBindCol.

  • Обработка динамических параметров, включая массивы параметров, только в направлении ввода путем вызова SQLBindParameter и SQLNumParams. (Параметры в направлении вывода — функция 203 в Соответствие интерфейса уровня 2.)

  • Укажите смещение привязки.

  • Используйте диалоговое окно выполнения данных, включающее вызовы SQLParamData и SQLPutData.

  • Управление курсорами и именами курсоров путем вызова SQLCloseCursor, SQLGetCursorName и SQLSetCursorName.

  • Получите доступ к описанию (метаданным) результирующих наборов, вызвав SQLColAttribute, SQLDescribeCol, SQLNumResultCols и SQLRowCount. (Использование этих функций в столбце номер 0 для получения метаданных закладки — функция 204 в Соответствие интерфейса уровня 2.)

  • Запросите словарь данных, вызвав функции каталога SQLColumns, SQLGetTypeInfo, SQLStatistics и SQLTables.

    Драйвер не требуется для поддержки многопартийных имен таблиц и представлений базы данных. (Дополнительные сведения см. в функции 101 в Соответствие интерфейсам уровня 1 и функция 201 в соответствии с интерфейсом уровня 2.) Однако некоторые функции спецификации SQL-92, такие как квалификация столбцов и имена индексов, синтаксически сопоставимы с многопартийным именованием. Нынешний список функций ODBC не предназначен для внедрения новых вариантов в эти аспекты SQL-92.

  • Управление источниками данных и подключениями путем вызова SQL Подключение, SQLDataSources, SQLDisconnect и SQLDriver Подключение. Получите сведения о драйверах, независимо от того, какой уровень поддержки они поддерживают ODBC, вызывая SQLDrivers.

  • Подготовка и выполнение инструкций SQL путем вызова SQLExecDirect, SQLExecute и SQLPrepare.

  • Получите одну строку результирующий набор или несколько строк только в направлении вперед, вызвав SQLFetch или вызвав SQLFetchScroll с аргументом FetchOrientation , равным SQL_FETCH_NEXT.

  • Получите несвязанный столбец в частях, вызвав SQLGetData.

  • Получите текущие значения всех атрибутов, вызывая SQLGet Подключение Attr, SQLGetEnvAttr и SQLGetStmtAttr, а также задайте для всех атрибутов значения по умолчанию и задайте для некоторых атрибутов недефаult значения путем вызова SQLSet Подключение Attr, SQLSetEnvAttr и SQLSetStmtAttr.

  • Управляйте определенными полями дескрипторов, вызывая SQLCopyDesc, SQLGetDescField, SQLGetDescRec, SQLSetDescField и SQLSetDescRec.

  • Получение диагностических сведений путем вызова SQLGetDiagField и SQLGetDiagRec.

  • Обнаружение возможностей драйвера путем вызова SQLGetFunctions и SQLGetInfo. Кроме того, определите результат любых подстановок текста, сделанных в инструкцию SQL перед отправкой в источник данных, вызвав SQLNativeSql.

  • Используйте синтаксис SQLEndTran для фиксации транзакции. Драйвер уровня ядра не должен поддерживать истинные транзакции; Поэтому приложение не может указывать SQL_ROLLBACK или SQL_AUTOCOMMIT_OFF для атрибута подключения SQL_ATTR_AUTOCOMMIT. (Дополнительные сведения см. в функции 109 в Соответствие интерфейса уровня 2.)

  • ВызовИТЕ SQLCancel , чтобы отменить диалоговое окно выполнения данных и в многопоточных средах, чтобы отменить функцию ODBC, выполняемую в другом потоке. Соответствие интерфейса на уровне ядра не требует поддержки асинхронного выполнения функций, а также использования SQLCancel для отмены функции ODBC, выполняемой асинхронно. Ни платформа, ни драйвер ODBC не нуждаются в многопотоковом режиме для того, чтобы драйвер одновременно осуществлял независимые действия. Однако в многопоточных средах драйвер ODBC должен быть потокобезопасн. Сериализация запросов из приложения является соответствующим способом реализации этой спецификации, даже если она может создать серьезные проблемы с производительностью.

  • Получите столбец SQL_BEST_ROWID для идентификации строк таблиц, вызвав SQLSpecialColumns. (Поддержка SQL_ROWVER — это функция 208 в Соответствие интерфейса уровня 2.)

    Важно!

    Драйверы ODBC должны реализовать функции на уровне соответствия основного интерфейса.