Поддержка SQLGetInfo

Когда ODBC 2. x приложение вызывает SQLGetInfo к драйверу ODBC 3*.x*, должны поддерживаться аргументы InfoType в следующей таблице.

InfoType Returns
SQL_ALTER_TABLE (ODBC 2.0) Примечание: этот тип информации не устаревает; битмаски в колонке справа устарели. Битовая маска SQLINTEGER, перечисляющая предложения в ALTER TABLE операторе, поддерживаемом источником данных.

Для определения поддерживаемых предложений используются следующие битовые маски:

SQL_AT_DROP_COLUMN = Поддерживается возможность сбрасывания столбцов. Будет ли это приводить к каскаду или ограничению поведения — зависит от водителя. (ODBC 2.0)

SQL_AT_ADD_COLUMN = Поддерживается возможность добавлять несколько столбцов в одном ALTER TABLE операторе. Этот бит не объединяется с другими битами SQL_AT_ADD_COLUMN_XXX или SQL_AT_CONSTRAINT_XXX битами. (ODBC 2.0)
SQL_FETCH_DIRECTION (ODBC 1.0)

Тип информации был введён в ODBC 1.0; Каждая битовая маска маркируется версией, в которой она была введена.
Битовая маска SQLINTEGER, перечисляющая поддерживаемые параметры направления выборки.

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

SQL_FD_FETCH_NEXT (ODBC 1.0) SQL_FD_FETCH_FIRST (ODBC 1.0) SQL_FD_FETCH_LAST (ODBC 1.0) SQL_FD_FETCH_PRIOR (ODBC 1.0) SQL_FD_FETCH_ABSOLUTE (ODBC 1.0) SQL_FD_FETCH_RELATIVE (ODBC 1.0) SQL_FD_FETCH_BOOKMARK (ODBC 2.0)
SQL_LOCK_TYPES (ODBC 2.0) Битовая маска SQLINTEGER, перечисляющая поддерживаемые типы замков для аргумента fLock в SQLSetPos.

Следующие битовые маски используются вместе с флагом для определения поддерживаемых типов замков:

SQL_LCK_NO_CHANGE SQL_LCK_EXCLUSIVE SQL_LCK_UNLOCK
SQL_ODBC_API_CONFORMANCE (ODBC 1.0) Значение SQLSMALLINT, указывающее уровень соответствия ODBC.

SQL_OAC_NONE = Нет

SQL_OAC_LEVEL1 = Поддерживаемый уровень 1

SQL_OAC_LEVEL2 = Поддерживается уровень 2
SQL_ODBC_SQL_CONFORMANCE (ODBC 1.0) Значение SQLSMALLINT, указывающее на SQL-грамматику, поддерживаемую драйвером. См. Приложение C: SQL-грамматика для определения уровней соответствия SQL.

SQL_OSC_MINIMUM = Минимальная поддерживаемая грамматика

SQL_OSC_CORE = Поддерживаемая основная грамматика

SQL_OSC_EXTENDED = Поддерживается расширенная грамматика
SQL_POS_OPERATIONS (ODBC 2.0) Битовая маска SQLINTEGER, перечисляющая поддерживаемые операции в SQLSetPos.

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

SQL_POS_POSITION (ODBC 2.0) SQL_POS_REFRESH (ODBC 2.0) SQL_POS_UPDATE (ODBC 2.0) SQL_POS_DELETE (ODBC 2.0) SQL_POS_ADD (ODBC 2.0)
SQL_POSITIONED_STATEMENTS (ODBC 2.0) Битовая маска SQLINTEGER, перечисляющая поддерживаемые позиционированные SQL-операторы.

Для определения поддерживаемых операторов используются следующие битовые маски:

SQL_PS_POSITIONED_DELETE SQL_PS_POSITIONED_UPDATE SQL_PS_SELECT_FOR_UPDATE
SQL_SCROLL_CONCURRENCY (ODBC 1.0) Битовая маска SQLINTEGER, перечисляющая опции управления параллелизмом, поддерживаемые курсором.

Для определения поддерживаемых параметров используются следующие битовые маски:

SQL_SCCO_READ_ONLY = Курсор предназначен только для чтения. Обновления не допускаются.

SQL_SCCO_LOCK = Курсор использует самый низкий уровень блокировки, достаточно для обновления строки.

SQL_SCCO_OPT_ROWVER = Курсор использует оптимистичное управление параллелизмом, сравнивая версии строк, такие как SQLBase ROWID или Sybase TIMESTAMP.

SQL_SCCO_OPT_VALUES = Курсор использует оптимистичное управление параллелизмом, сравнивая значения.
SQL_STATIC_SENSITIVITY (ODBC 2.0) Битовая маска SQLINTEGER, определяющая, могут ли быть обнаружены изменения, внесённые приложением в статический или управляемый курсором через SQLSetPos , либо позиционированные операторы обновления или удаления.

SQL_SS_ADDITIONS = Добавленные строки видны курсору; курсор может прокручивать эти ряды. Место добавления этих строк к курсору зависит от драйвера.

SQL_SS_DELETIONS = Удалённые строки больше недоступны курсору и не оставляют «дыру» в наборе результатов; После того как курсор прокрутит удалённый ряд, он не может вернуться в эту строку.

SQL_SS_UPDATES = Обновления строк видны курсору; Если курсор прокручивает и возвращается к обновлённой строке, то данные, возвращаемые курсором, являются обновлёнными, а не исходными. Эта опция применяется только к статическим курсорам или обновлениям на курсорах, управляемых ключами, которые не обновляют ключ. Эта опция не применяется для динамического курсора или в случае, когда клавиша меняется в смешанном курсоре.

Может ли приложение обнаруживать изменения, внесённые в набор результатов другими пользователями, включая курсоры в том же приложении, зависит от типа курсора.

Приложение ODBC 3*.x*, работающее с драйвером ODBC 3*.x*, не должно вызывать SQLGetInfo с аргументами InfoType , описанными в предыдущей таблице, а должно использовать аргументы ODBC 3*.x* InfoType , перечисленные в следующем абзаце. В ODBC 2 нет единого соответствия между аргументами InfoType , используемыми в ODBC 2. x и те, что используются в ODBC 3*.x*. Приложение ODBC 3*.x*, работающее с ODBC 2. драйвер x , напротив, должен использовать ранее описанные аргументы InfoType .

Некоторые типы информации из предыдущей таблицы устарели в пользу типов информации с атрибутами курсора. Эти устаревшие типы информации — это SQL_FETCH_DIRECTION, SQL_LOCK_TYPES, SQL_POS_OPERATIONS, SQL_POSITIONED_STATEMENTS, SQL_SCROLL_CONCURRENCY и SQL_STATIC_SENSITIVITY. Новые типы атрибутов курсора — SQL_XXX_CURSOR_ATTRIBUTES1and SQL_XXX_CURSOR_ATTRIBUTES2, где XXX равен DYNAMIC, FORWARD_ONLY, KEYSET_DRIVEN или STATIC. Каждый из новых типов показывает возможности драйвера для одного типа курсора. Для получения дополнительной информации об этих опциях см. описание функции SQLGetInfo .