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


Поддержка SQLGetInfo

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

InfoType Возвраты
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 = Cursor использует управление оптимистическим параллелизмом, сравнивая версии строк, такие как SQLBase ROWID или Sybase TIMESTAMP.

SQL_SCCO_OPT_VALUES = Cursor использует элемент управления оптимистичным параллелизмом, сравнивая значения.
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, описанными в предыдущей таблице, но должно использовать аргументы INFOType ODBC 3*.x** InfoType, перечисленные в следующем абзаце. Между аргументами 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 .