Бөлісу құралы:


SQLGetInfo, функция

Соответствие
Представлена версия: соответствие стандартам ODBC 1.0: ISO 92

Сводка
SQLGetInfo возвращает общие сведения о драйвере и источнике данных, связанном с подключением.

Синтаксис

  
SQLRETURN SQLGetInfo(  
     SQLHDBC         ConnectionHandle,  
     SQLUSMALLINT    InfoType,  
     SQLPOINTER      InfoValuePtr,  
     SQLSMALLINT     BufferLength,  
     SQLSMALLINT *   StringLengthPtr);  

Аргументы

ConnectionHandle
[Input] Дескриптор подключения

InfoType
[Входные данные] Тип сведений.

InfoValuePtr
[Выходные данные] Указатель на буфер, в котором возвращаются сведения. В зависимости от запрошенного InfoType возвращаемые сведения будут одной из следующих: строка символов, завершающаяся null, значение SQLUSMALLINT, битовая маска SQLUINTEGER, флаг SQLUINTEGER, двоичное значение SQLUINTEGER или значение SQLULEN.

Если аргумент InfoType SQL_DRIVER_HDESC или SQL_DRIVER_HSTMT, аргумент InfoValuePtr является входным и выходным. (Дополнительные сведения см. в дескрипторах SQL_DRIVER_HDESC или SQL_DRIVER_HSTMT далее в этом описании функции.)

Если InfoValuePtr имеет значение NULL, StringLengthPtr по-прежнему возвращает общее количество байтов (за исключением символа завершения null для символьных данных), доступное для возврата в буфер, на который указывает InfoValuePtr.

BufferLength
[Входные данные] Длина буфера *InfoValuePtr . Если значение в *InfoValuePtr не является символьной строкой или если InfoValuePtr является пустым указателем, аргумент BufferLength игнорируется. Драйвер предполагает, что размер *InfoValuePtr — SQLUSMALLINT или SQLUINTEGER на основе InfoType. Если параметр *InfoValuePtr является строкой Юникода (при вызове SQLGetInfoW), аргумент BufferLength должен быть четным числом; если нет, возвращается значение SQLSTATE HY090 (недопустимая строка или длина буфера).

StringLengthPtr
[Выходные данные] Указатель на буфер, в котором возвращается общее количество байтов (за исключением символа завершения null для символьных данных), доступное для возврата в *InfoValuePtr.

Для символьных данных, если число байтов, доступных для возврата, больше или равно BufferLength, сведения в *InfoValuePtr усечены в BufferLength байт минус длина символа завершения null и завершается драйвером null.

Для всех других типов данных значение BufferLength игнорируется, а драйвер предполагает, что размер *InfoValuePtr — SQLUSMALLINT или SQLUINTEGER в зависимости от InfoType.

Возвраты

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR или SQL_INVALID_HANDLE.

Диагностика

Когда SQLGetInfo возвращает SQL_ERROR или SQL_SUCCESS_WITH_INFO, связанное значение SQLSTATE можно получить путем вызова SQLGetDiagRec с помощью HandleType SQL_HANDLE_DBC и дескриптора ConnectionHandle. В следующей таблице перечислены значения SQLSTATE, которые обычно возвращаются SQLGetInfo и объясняются каждый из них в контексте этой функции. Нотация "(DM)" предшествует описаниям SQLSTATEs, возвращаемым диспетчером драйверов. Возвращаемый код, связанный с каждым значением SQLSTATE, SQL_ERROR, если не указано иное.

SQLSTATE Ошибка Описание
01000 Общее предупреждение Информационное сообщение для конкретного драйвера. (Функция возвращает SQL_SUCCESS_WITH_INFO.)
01004 Строковые данные, усеченные справа Буфер *InfoValuePtr не был достаточно большим, чтобы вернуть все запрошенные сведения. Таким образом, информация была усечена. Длина запрошенной информации в ненадежной форме возвращается в *StringLengthPtr. (Функция возвращает SQL_SUCCESS_WITH_INFO.)
08003 Подключение не открыто (DM) Тип информации, запрошенной в InfoType , требует открытого подключения. Из типов сведений, зарезервированных ODBC, можно вернуть только SQL_ODBC_VER без открытого подключения.
08S01 Сбой связи Связь между драйвером и источником данных, к которому был подключен драйвер, произошел сбой до завершения обработки функции.
HY000 Общая ошибка Произошла ошибка, для которой не было определенного SQLSTATE и для которого не было определено значение SQLSTATE для конкретной реализации. Сообщение об ошибке, возвращаемое SQLGetDiagRec в буфере *MessageText , описывает ошибку и ее причину.
HY001 Ошибка выделения памяти Драйверу не удалось выделить память, необходимую для поддержки выполнения или завершения функции.
HY010 Ошибка последовательности функций (DM) SQLExecute, SQLExecDirect или SQLMoreResults был вызван для ОператораHandle и возвращен SQL_PARAM_DATA_AVAILABLE. Эта функция была вызвана до получения данных для всех потоковых параметров.
HY013 Ошибка управления памятью Не удалось обработать вызов функции, так как к базовым объектам памяти не удалось получить доступ, возможно, из-за низкой памяти.
HY024 Недопустимое значение атрибута (DM) Аргумент InfoType был SQL_DRIVER_HSTMT, а значение, на которое указывает InfoValuePtr , не является допустимым дескриптором инструкции.

(DM) Аргумент InfoType был SQL_DRIVER_HDESC, а значение, на которое указывает InfoValuePtr , не является допустимым дескриптором дескриптора.
HY090 Недопустимая длина строки или буфера (DM) Значение, указанное для аргумента BufferLength , было меньше 0.

(DM) Значение, указанное для BufferLength , было нечетным числом, и *InfoValuePtr был типом данных Юникода.
HY096 Тип информации вне диапазона Значение, указанное для аргумента InfoType , недопустимо для версии ODBC, поддерживаемой драйвером.
HY117 Подключение приостановлено из-за неизвестного состояния транзакции. Разрешены только функции отключения и только для чтения. (DM) Дополнительные сведения о приостановленном состоянии см. в статье SQLEndTran Function.
HYC00 Необязательное поле не реализовано Значение, указанное для аргумента InfoType , было значением для конкретного драйвера, которое не поддерживается драйвером.
HYT01 Время ожидания для подключения истекло Срок ожидания подключения истек до того, как источник данных ответил на запрос. Период времени ожидания подключения задается через SQLSetConnectAttr SQL_ATTR_CONNECTION_TIMEOUT.
IM001 Драйвер не поддерживает эту функцию (DM) Драйвер, соответствующий ConnectionHandle , не поддерживает функцию.

Комментарии

В настоящее время определенные типы информации отображаются в разделе "Типы сведений", далее в этом разделе; Ожидается, что для использования различных источников данных будет определено больше. Диапазон типов информации зарезервирован ODBC; Разработчики драйверов должны зарезервировать значения для собственного использования драйвера из Open Group. SQLGetInfo не выполняет преобразования Юникода или thunking (см . приложение A: Коды ошибок ODBC в справочнике программиста ODBC) для определяемых драйвером InfoTypes. Дополнительные сведения см. в разделе "Типы данных для конкретного драйвера", "Типы дескриптора", "Типы сведений", "Типы диагностики" и "Атрибуты". Формат сведений, возвращаемых в *InfoValuePtr , зависит от запрошенного InfoType . SQLGetInfo возвращает информацию в одном из пяти разных форматов:

  • Строка символов, завершающаяся значением NULL

  • Значение SQLUSMALLINT

  • Битовая маска SQLUINTEGER

  • Значение SQLUINTEGER

  • Двоичное значение SQLUINTEGER

Формат каждого из следующих типов сведений отмечается в описании типа. Приложение должно привести значение, возвращаемое в *InfoValuePtr соответствующим образом. Пример того, как приложение может получить данные из битовой маски SQLUINTEGER, см. в разделе "Пример кода".

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

Тип информации Значение
Символьная строка ("Y" или "N") "N"
Символьная строка (не "Y" или "N") Пустая строка
SQLUSMALLINT 0
Двоичное значение SQLUINTEGER или ДВОИчное значение SQLUINTEGER 0L

Например, если источник данных не поддерживает процедуры, SQLGetInfo возвращает значения, перечисленные в следующей таблице для значений InfoType , связанных с процедурами.

InfoType Значение
SQL_PROCEDURES "N"
SQL_ACCESSIBLE_PROCEDURES "N"
SQL_MAX_PROCEDURE_NAME_LEN 0
SQL_PROCEDURE_TERM Пустая строка

SQLGetInfo возвращает значение SQLSTATE HY096 (недопустимое значение аргумента) для значений InfoType , которые находятся в диапазоне типов информации, зарезервированных для использования ODBC, но не определены версией ODBC, поддерживаемой драйвером. Чтобы определить, какая версия ODBC соответствует драйверу, приложение вызывает SQLGetInfo с типом сведений SQL_DRIVER_ODBC_VER. SQLGetInfo возвращает SQLSTATE HYC00 (необязательный компонент не реализован) для значений InfoType , которые находятся в диапазоне типов сведений, зарезервированных для использования драйвера, но не поддерживаются драйвером.

Для всех вызовов SQLGetInfo требуется открытое подключение, за исключением SQL_ODBC_VER InfoType , которая возвращает версию диспетчера драйверов.

Типы сведений

В этом разделе перечислены типы сведений, поддерживаемые SQLGetInfo. Типы информации группируются категорично и перечислены в алфавитном порядке. Также перечислены типы сведений, которые были добавлены или переименованы для ODBC 3*.x*.

Сведения о драйвере

Следующие значения аргумента InfoType возвращают сведения о драйвере ODBC, таких как количество активных инструкций, имя источника данных и уровень соответствия стандартам интерфейса:

SQL_ACTIVE_ENVIRONMENTS
SQL_ASYNC_DBC_FUNCTIONS
SQL_ASYNC_MODE
SQL_ASYNC_NOTIFICATION
SQL_BATCH_ROW_COUNT
SQL_BATCH_SUPPORT
SQL_DATA_SOURCE_NAME
SQL_DRIVER_AWARE_POOLING_SUPPORTED
SQL_DRIVER_HDBC
SQL_DRIVER_HDESC
SQL_DRIVER_HENV
SQL_DRIVER_HLIB
SQL_DRIVER_HSTMT
SQL_DRIVER_NAME
SQL_DRIVER_ODBC_VER
SQL_DRIVER_VER
SQL_DYNAMIC_CURSOR_ATTRIBUTES1
SQL_DYNAMIC_CURSOR_ATTRIBUTES2
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1

SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2
SQL_FILE_USAGE
SQL_GETDATA_EXTENSIONS
SQL_INFO_SCHEMA_VIEWS
SQL_KEYSET_CURSOR_ATTRIBUTES1
SQL_KEYSET_CURSOR_ATTRIBUTES2
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS
SQL_MAX_CONCURRENT_ACTIVITIES
SQL_MAX_DRIVER_CONNECTIONS
SQL_ODBC_INTERFACE_CONFORMANCE
SQL_ODBC_STANDARD_CLI_CONFORMANCE
SQL_ODBC_VER
SQL_PARAM_ARRAY_ROW_COUNTS
SQL_PARAM_ARRAY_SELECTS
SQL_ROW_UPDATES
SQL_SEARCH_PATTERN_ESCAPE
SQL_SERVER_NAME
SQL_STATIC_CURSOR_ATTRIBUTES1
SQL_STATIC_CURSOR_ATTRIBUTES2

Примечание.

При реализации SQLGetInfo драйвер может повысить производительность, свести к минимуму количество отправленных или запрашиваемых сведений с сервера.

Сведения о продукте СУБД

Следующие значения аргумента InfoType возвращают сведения о продукте СУБД, например имени и версии СУБД:

SQL_DATABASE_NAME
SQL_DBMS_NAME

SQL_DBMS_VER

Сведения об источнике данных

Следующие значения аргумента InfoType возвращают сведения о источнике данных, такие как характеристики курсора и возможности транзакций:

SQL_ACCESSIBLE_PROCEDURES
SQL_ACCESSIBLE_TABLES
SQL_BOOKMARK_PERSISTENCE
SQL_CATALOG_TERM
SQL_COLLATION_SEQ
SQL_CONCAT_NULL_BEHAVIOR
SQL_CURSOR_COMMIT_BEHAVIOR
SQL_CURSOR_ROLLBACK_BEHAVIOR
SQL_CURSOR_SENSITIVITY
SQL_DATA_SOURCE_READ_ONLY
SQL_DEFAULT_TXN_ISOLATION
SQL_DESCRIBE_PARAMETER

SQL_MULT_RESULT_SETS
SQL_MULTIPLE_ACTIVE_TXN
SQL_NEED_LONG_DATA_LEN
SQL_NULL_COLLATION
SQL_PROCEDURE_TERM
SQL_SCHEMA_TERM
SQL_SCROLL_OPTIONS
SQL_TABLE_TERM
SQL_TXN_CAPABLE
SQL_TXN_ISOLATION_OPTION
SQL_USER_NAME

Поддерживаемый SQL

Следующие значения аргумента InfoType возвращают сведения о инструкциях SQL, поддерживаемых источником данных. Синтаксис SQL для каждой функции, описанной этими типами данных, является синтаксисом SQL-92. Эти типы данных не подробно описывают всю грамматику SQL-92. Вместо этого они описывают эти части грамматики, для которых источники данных обычно предлагают различные уровни поддержки. В частности, рассматриваются большинство инструкций DDL в SQL-92.

Приложения должны определять общий уровень поддерживаемой грамматики из типа сведений SQL_SQL_CONFORMANCE и использовать другие типы информации для определения вариантов от указанного уровня соответствия стандартам.

SQL_AGGREGATE_FUNCTIONS
SQL_ALTER_DOMAIN
SQL_ALTER_SCHEMA
SQL_ALTER_TABLE
SQL_ANSI_SQL_DATETIME_LITERALS
SQL_CATALOG_LOCATION
SQL_CATALOG_NAME
SQL_CATALOG_NAME_SEPARATOR
SQL_CATALOG_USAGE
SQL_COLUMN_ALIAS
SQL_CORRELATION_NAME
SQL_CREATE_ASSERTION
SQL_CREATE_CHARACTER_SET
SQL_CREATE_COLLATION
SQL_CREATE_DOMAIN
SQL_CREATE_SCHEMA
SQL_CREATE_TABLE
SQL_CREATE_TRANSLATION
SQL_DDL_INDEX
SQL_DROP_ASSERTION
SQL_DROP_CHARACTER_SET
SQL_DROP_COLLATION
SQL_DROP_DOMAIN
SQL_DROP_SCHEMA

SQL_DROP_TABLE
SQL_DROP_TRANSLATION
SQL_DROP_VIEW
SQL_EXPRESSIONS_IN_ORDERBY
SQL_GROUP_BY
SQL_IDENTIFIER_CASE
SQL_IDENTIFIER_QUOTE_CHAR
SQL_INDEX_KEYWORDS
SQL_INSERT_STATEMENT
SQL_INTEGRITY
SQL_KEYWORDS
SQL_LIKE_ESCAPE_CLAUSE
SQL_NON_NULLABLE_COLUMNS
SQL_OJ_CAPABILITIES
SQL_ORDER_BY_COLUMNS_IN_SELECT
SQL_OUTER_JOINS
SQL_PROCEDURES
SQL_QUOTED_IDENTIFIER_CASE
SQL_SCHEMA_USAGE
SQL_SPECIAL_CHARACTERS
SQL_SQL_CONFORMANCE
SQL_SUBQUERIES
SQL_UNION

Ограничения SQL

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

SQL_MAX_BINARY_LITERAL_LEN
SQL_MAX_CATALOG_NAME_LEN
SQL_MAX_CHAR_LITERAL_LEN
SQL_MAX_COLUMN_NAME_LEN
SQL_MAX_COLUMNS_IN_GROUP_BY
SQL_MAX_COLUMNS_IN_INDEX
SQL_MAX_COLUMNS_IN_ORDER_BY
SQL_MAX_COLUMNS_IN_SELECT
SQL_MAX_COLUMNS_IN_TABLE
SQL_MAX_CURSOR_NAME_LEN

SQL_MAX_IDENTIFIER_LEN
SQL_MAX_INDEX_SIZE
SQL_MAX_PROCEDURE_NAME_LEN
SQL_MAX_ROW_SIZE
SQL_MAX_ROW_SIZE_INCLUDES_LONG
SQL_MAX_SCHEMA_NAME_LEN
SQL_MAX_STATEMENT_LEN
SQL_MAX_TABLE_NAME_LEN
SQL_MAX_TABLES_IN_SELECT
SQL_MAX_USER_NAME_LEN

Скалярные сведения о функции

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

SQL_CONVERT_FUNCTIONS
SQL_NUMERIC_FUNCTIONS
SQL_STRING_FUNCTIONS
SQL_SYSTEM_FUNCTIONS

SQL_TIMEDATE_ADD_INTERVALS
SQL_TIMEDATE_DIFF_INTERVALS
SQL_TIMEDATE_FUNCTIONS

Сведения о преобразовании

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

SQL_CONVERT_BIGINT
SQL_CONVERT_BINARY
SQL_CONVERT_BIT
SQL_CONVERT_CHAR
SQL_CONVERT_DATE
SQL_CONVERT_DECIMAL
SQL_CONVERT_DOUBLE
SQL_CONVERT_FLOAT
SQL_CONVERT_INTEGER
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_INTERVAL_YEAR_MONTH

SQL_CONVERT_LONGVARBINARY
SQL_CONVERT_LONGVARCHAR
SQL_CONVERT_NUMERIC
SQL_CONVERT_REAL
SQL_CONVERT_SMALLINT
SQL_CONVERT_TIME
SQL_CONVERT_TIMESTAMP
SQL_CONVERT_TINYINT
SQL_CONVERT_VARBINARY
SQL_CONVERT_VARCHAR

Типы сведений, добавленные для ODBC 3.x

Для ODBC 3.x добавлены следующие значения аргумента InfoType :

SQL_ACTIVE_ENVIRONMENTS
SQL_AGGREGATE_FUNCTIONS
SQL_ALTER_DOMAIN
SQL_ALTER_SCHEMA
SQL_ANSI_SQL_DATETIME_LITERALS
SQL_ASYNC_DBC_FUNCTIONS
SQL_ASYNC_MODE
SQL_ASYNC_NOTIFICATION
SQL_BATCH_ROW_COUNT
SQL_BATCH_SUPPORT
SQL_CATALOG_NAME
SQL_COLLATION_SEQ
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_INTERVAL_YEAR_MONTH
SQL_CREATE_ASSERTION
SQL_CREATE_CHARACTER_SET
SQL_CREATE_COLLATION
SQL_CREATE_DOMAIN
SQL_CREATE_SCHEMA
SQL_CREATE_TABLE
SQL_CREATE_TRANSLATION
SQL_CURSOR_SENSITIVITY
SQL_DDL_INDEX
SQL_DESCRIBE_PARAMETER
SQL_DM_VER

SQL_DRIVER_AWARE_POOLING_SUPPORTED
SQL_DRIVER_HDESC
SQL_DROP_ASSERTION
SQL_DROP_CHARACTER_SET
SQL_DROP_COLLATION
SQL_DROP_DOMAIN
SQL_DROP_SCHEMA
SQL_DROP_TABLE
SQL_DROP_TRANSLATION
SQL_DROP_VIEW
SQL_DYNAMIC_CURSOR_ATTRIBUTES1
SQL_DYNAMIC_CURSOR_ATTRIBUTES2
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2
SQL_INFO_SCHEMA_VIEWS
SQL_INSERT_STATEMENT
SQL_KEYSET_CURSOR_ATTRIBUTES1
SQL_KEYSET_CURSOR_ATTRIBUTES2
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS
SQL_MAX_IDENTIFIER_LEN
SQL_PARAM_ARRAY_ROW_COUNTS
SQL_PARAM_ARRAY_SELECTS
SQL_STATIC_CURSOR_ATTRIBUTES1
SQL_STATIC_CURSOR_ATTRIBUTES2
SQL_XOPEN_CLI_YEAR

Типы сведений, переименованные для ODBC 3.x

Следующие значения аргумента InfoType были переименованы для ODBC 3.x.

Старое имя Новое имя
SQL_ACTIVE_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS
SQL_ACTIVE_STATEMENTS SQL_MAX_CONCURRENT_ACTIVITIES
SQL_MAX_OWNER_NAME_LEN SQL_MAX_SCHEMA_NAME_LEN
SQL_MAX_QUALIFIER_NAME_LEN SQL_MAX_CATALOG_NAME_LEN
SQL_ODBC_SQL_OPT_IEF SQL_INTEGRITY
SQL_OWNER_TERM SQL_SCHEMA_TERM
SQL_OWNER_USAGE SQL_SCHEMA_USAGE
SQL_QUALIFIER_LOCATION SQL_CATALOG_LOCATION
SQL_QUALIFIER_NAME_SEPARATOR SQL_CATALOG_NAME_SEPARATOR
SQL_QUALIFIER_TERM SQL_CATALOG_TERM
SQL_QUALIFIER_USAGE SQL_CATALOG_USAGE

Типы сведений, устаревшие в ODBC 3.x

Следующие значения аргумента InfoType устарели в ODBC 3.x. Драйверы ODBC 3.x должны продолжать поддерживать эти типы сведений для обратной совместимости с приложениями ODBC 2.x. (Дополнительные сведения об этих типах см. в разделе Поддержка SQLGetInfo в приложении G. Рекомендации по драйверам для обратной совместимости.)

SQL_FETCH_DIRECTION
SQL_LOCK_TYPES
SQL_ODBC_API_CONFORMANCE
SQL_ODBC_SQL_CONFORMANCE

SQL_POS_OPERATIONS
SQL_POSITIONED_STATEMENTS
SQL_SCROLL_CONCURRENCY
SQL_STATIC_SENSITIVITY

Описания типов сведений

В следующей таблице по алфавиту перечислены все типы информации, версия ODBC, в которой она была представлена, и ее описание.

Тип сведений Версия ODBC Description
SQL_ACCESSIBLE_PROCEDURES 1.0 Символьная строка: "Y", если пользователь может выполнить все процедуры, возвращаемые SQLProcedures; Значение "N", если могут быть возвращены процедуры, которые пользователь не может выполнить.
SQL_ACCESSIBLE_TABLES 1.0 Символьная строка: "Y", если пользователь гарантирует права SELECT для всех таблиц, возвращаемых SQLTables; Значение "N", если могут быть возвращены таблицы, к которым пользователь не может получить доступ.
SQL_ACTIVE_ENVIRONMENTS 3.0 Значение SQLUSMALLINT, указывающее максимальное количество активных сред, которые может поддерживать драйвер. Если указанное ограничение отсутствует или ограничение неизвестно, это значение равно нулю.
SQL_AGGREGATE_FUNCTIONS 3.0 Битовая маска SQLUINTEGER, перечисляющая поддержку функций агрегирования:
SQL_AF_ALL
SQL_AF_AVG
SQL_AF_COUNT
SQL_AF_DISTINCT
SQL_AF_MAX
SQL_AF_MIN
SQL_AF_SUM

Драйвер уровня входа SQL-92 всегда возвращает все эти параметры в соответствии с поддерживаемыми.
SQL_ALTER_DOMAIN 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции ALTER DOMAIN , как определено в SQL-92, поддерживаемой источником данных. Полноуровневый драйвер SQL-92 всегда возвращает все битовые маски. Возвращаемое значение "0" означает, что инструкция ALTER DOMAIN не поддерживается.

Уровень соответствия SQL-92 или FIPS, на котором эта функция должна поддерживаться, отображается в скобках рядом с каждой битовой маской.

Для определения поддерживаемых предложений используются следующие битовые маски:
SQL_AD_ADD_DOMAIN_CONSTRAINT = добавление ограничения домена поддерживается (полный уровень)
SQL_AD_ADD_DOMAIN_DEFAULT = <предложение> alter domain><set по умолчанию поддерживается (полный уровень)
SQL_AD_CONSTRAINT_NAME_DEFINITION = <предложение> определения имени ограничения поддерживается для ограничения домена именования (промежуточный уровень)
SQL_AD_DROP_DOMAIN_CONSTRAINT = <предложение> ограничения домена drop поддерживается (полный уровень)
SQL_AD_DROP_DOMAIN_DEFAULT = <предложение> alter domain drop domain><default поддерживается (полный уровень)

Следующие биты указывают поддерживаемые <атрибуты> ограничений, если <поддерживается добавление ограничения> домена (задано SQL_AD_ADD_DOMAIN_CONSTRAINT бит):
SQL_AD_ADD_CONSTRAINT_DEFERRABLE (полный уровень)
SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE (полный уровень)
SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED (полный уровень)
SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE (полный уровень)
SQL_ALTER_TABLE 2.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции ALTER TABLE , поддерживаемой источником данных.

Уровень соответствия SQL-92 или FIPS, на котором эта функция должна поддерживаться, отображается в скобках рядом с каждой битовой маской.

Для определения поддерживаемых предложений используются следующие битовые маски:
SQL_AT_ADD_COLUMN_COLLATION = <поддерживается предложение "Добавить столбец" с помощью средства для указания сортировки столбцов> (полный уровень) (ODBC 3.0)
SQL_AT_ADD_COLUMN_DEFAULT = <предложение add column поддерживается, при этом для указания значений по умолчанию столбцов> (уровень перехода FIPS) (ODBC 3.0)
SQL_AT_ADD_COLUMN_SINGLE = <добавлен столбец> поддерживается (переходный уровень FIPS) (ODBC 3.0)
SQL_AT_ADD_CONSTRAINT = <предложение "Добавить столбец" поддерживается с помощью средства для указания ограничений столбцов> (уровень перехода FIPS) (ODBC 3.0)
SQL_AT_ADD_TABLE_CONSTRAINT = <предложение добавления ограничения> таблицы поддерживается (уровень перехода FIPS) (ODBC 3.0)
SQL_AT_CONSTRAINT_NAME_DEFINITION = <определение> имени ограничения поддерживается для именования столбцов и ограничений таблицы (промежуточный уровень) (ODBC 3.0)
SQL_AT_DROP_COLUMN_CASCADE = <drop column> CASCADE поддерживается (уровень перехода FIPS) (ODBC 3.0)
SQL_AT_DROP_COLUMN_DEFAULT = <предложение> alter column drop column><default поддерживается (промежуточный уровень) (ODBC 3.0)
SQL_AT_DROP_COLUMN_RESTRICT = <drop column> RESTRICT поддерживается (уровень перехода FIPS) (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT = <удалить столбец> RESTRICT поддерживается (уровень перехода FIPS) (ODBC 3.0)
SQL_AT_SET_COLUMN_DEFAULT = <предложение> alter column><set по умолчанию поддерживается (промежуточный уровень) (ODBC 3.0)

Следующие биты указывают атрибуты> ограничения поддержки<, если поддерживается указание ограничений столбца или таблицы (задано значение SQL_AT_ADD_CONSTRAINT бита):
SQL_AT_CONSTRAINT_INITIALLY_DEFERRED (полный уровень) (ODBC 3.0)
SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE (полный уровень) (ODBC 3.0)
SQL_AT_CONSTRAINT_DEFERRABLE (полный уровень) (ODBC 3.0)
SQL_AT_CONSTRAINT_NON_DEFERRABLE (полный уровень) (ODBC 3.0)
SQL_ASYNC_DBC_FUNCTIONS 3,8 Значение SQLUINTEGER, указывающее, может ли драйвер выполнять функции асинхронно на дескрипторе подключения.

SQL_ASYNC_DBC_CAPABLE = драйвер может выполнять функции подключения асинхронно.
SQL_ASYNC_DBC_NOT_CAPABLE = драйвер не может выполнять функции подключения асинхронно.
SQL_ASYNC_MODE 3.0 Значение SQLUINTEGER, указывающее уровень асинхронной поддержки в драйвере:

SQL_AM_CONNECTION = асинхронное выполнение уровня подключения поддерживается. Все дескрипторы инструкций, связанные с заданным дескриптором подключения, находятся в асинхронном режиме или все находятся в синхронном режиме. Дескриптор инструкции в соединении не может находиться в асинхронном режиме, а другой дескриптор инструкции в том же соединении синхронно и наоборот.
SQL_AM_STATEMENT = асинхронное выполнение уровня инструкций поддерживается. Некоторые дескрипторы инструкций, связанные с дескриптором подключения, могут находиться в асинхронном режиме, а другие дескрипторы инструкций находятся в синхронном режиме.
SQL_AM_NONE = асинхронный режим не поддерживается.
SQL_ASYNC_NOTIFICATION 3,8 Значение SQLUINTEGER, указывающее, поддерживает ли драйвер асинхронное уведомление:

SQL_ASYNC_NOTIFICATION_CAPABLE = асинхронное уведомление о выполнении поддерживается драйвером.
SQL_ASYNC_NOTIFICATION_NOT_CAPABLE = асинхронное уведомление о выполнении не поддерживается драйвером.

Существует две категории асинхронных операций ODBC: асинхронные операции уровня подключения и асинхронные операции уровня инструкций. Если драйвер возвращает SQL_ASYNC_NOTIFICATION_CAPABLE, он должен поддерживать уведомление для всех API, которые он может выполнять асинхронно.
SQL_BATCH_ROW_COUNT 3.0 Битовая маска SQLUINTEGER, которая перечисляет поведение драйвера в отношении доступности счетчиков строк. Следующие битовые маски используются вместе с типом информации:

SQL_BRC_ROLLED_UP = количество строк для последовательных инструкций INSERT, DELETE или UPDATE объединяются в одну. Если этот бит не задан, количество строк доступно для каждой инструкции.
SQL_BRC_PROCEDURES = количество строк, если таковые имеются, доступны при выполнении пакета в хранимой процедуре. Если количество строк доступно, их можно свернуть или отдельно в зависимости от SQL_BRC_ROLLED_UP бита.
SQL_BRC_EXPLICIT = количество строк, если таковые имеются, доступны при выполнении пакета напрямую путем вызова SQLExecute или SQLExecDirect. Если количество строк доступно, их можно свернуть или отдельно в зависимости от SQL_BRC_ROLLED_UP бита.
SQL_BATCH_SUPPORT 3.0 Битовая маска SQLUINTEGER, перечисляющая поддержку драйверов для пакетов. Для определения поддерживаемого уровня используются следующие битовые маски:

SQL_BS_SELECT_EXPLICIT = драйвер поддерживает явные пакеты, которые могут иметь инструкции создания результирующих наборов.
SQL_BS_ROW_COUNT_EXPLICIT = Драйвер поддерживает явные пакеты, которые могут содержать инструкции создания строк.
SQL_BS_SELECT_PROC = драйвер поддерживает явные процедуры, которые могут иметь инструкции создания результирующих наборов.
SQL_BS_ROW_COUNT_PROC = Драйвер поддерживает явные процедуры, которые могут содержать инструкции создания строк.
SQL_BOOKMARK_PERSISTENCE 2.0 Битовая маска SQLUINTEGER, перечисляющая операции, с помощью которых сохраняются закладки. Следующие битовые маски используются вместе с флагом для определения сохраняющихся закладок параметров:

SQL_BP_CLOSE = Закладки действительны после вызова SQLFreeStmt с параметром SQL_CLOSE или SQLCloseCursor , чтобы закрыть курсор, связанный с инструкцией.
SQL_BP_DELETE = закладка для строки действительна после удаления этой строки.
SQL_BP_DROP = Закладки действительны после вызова SQLFreeHandle с помощью HandleType SQL_HANDLE_STMT для удаления инструкции.
SQL_BP_TRANSACTION = Закладки действительны после фиксации или отката транзакции приложения.
SQL_BP_UPDATE = закладка для строки действительна после обновления любого столбца в этой строке, включая ключевые столбцы.
SQL_BP_OTHER_HSTMT = закладка, связанная с одной инструкцией, может использоваться с другой инструкцией. Если SQL_BP_CLOSE или SQL_BP_DROP указано, курсор на первой инструкции должен быть открыт.
SQL_CATALOG_LOCATION 2.0 Значение SQLUSMALLINT, указывающее положение каталога в имени таблицы:

SQL_CL_START
SQL_CL_END
Например, драйвер Xbase возвращает SQL_CL_START, так как имя каталога (каталога) находится в начале имени таблицы, как в файле \EMPDATA\EMP. DBF. Драйвер ORACLE Server возвращает SQL_CL_END, так как каталог находится в конце имени таблицы, как и в admin. EMP@EMPDATA.

Полноуровневый драйвер SQL-92 всегда возвращает SQL_CL_START. Значение 0 возвращается, если каталоги не поддерживаются источником данных. Чтобы определить, поддерживаются ли каталоги, приложение вызывает SQLGetInfo с типом сведений SQL_CATALOG_NAME.

Этот InfoType был переименован для ODBC 3.0 из SQL_QUALIFIER_LOCATION ODBC 2.0 InfoType .
SQL_CATALOG_NAME 3.0 Символьная строка: "Y", если сервер поддерживает имена каталогов или "N", если это не так.

Полноуровневый драйвер SQL-92 всегда возвращает значение "Y".
SQL_CATALOG_NAME_SEPARATOR 1.0 Строка символов: символ или символы, которые источник данных определяет в качестве разделителя между именем каталога и полным элементом имени, который следует или предшествует ему.

Пустая строка возвращается, если каталоги не поддерживаются источником данных. Чтобы определить, поддерживаются ли каталоги, приложение вызывает SQLGetInfo с типом сведений SQL_CATALOG_NAME. Полноуровневый драйвер SQL-92 всегда возвращает ".".

Этот InfoType был переименован для ODBC 3.0 из SQL_QUALIFIER_NAME_SEPARATOR ODBC 2.0 InfoType .
SQL_CATALOG_TERM 1.0 Символьная строка с именем поставщика источника данных для каталога; Например, "база данных" или "каталог". Эта строка может находиться в верхнем, нижнем или смешанном регистре.

Пустая строка возвращается, если каталоги не поддерживаются источником данных. Чтобы определить, поддерживаются ли каталоги, приложение вызывает SQLGetInfo с типом сведений SQL_CATALOG_NAME. Полноуровневый драйвер SQL-92 всегда возвращает "каталог".

Этот InfoType был переименован для ODBC 3.0 из SQL_QUALIFIER_TERM ODBC 2.0 InfoType .
SQL_CATALOG_USAGE 2.0 Битовая маска SQLUINTEGER, перечисляющая инструкции, в которых можно использовать каталоги.

Следующие битовые маски используются для определения того, где можно использовать каталоги:
SQL_CU_DML_STATEMENTS = каталоги поддерживаются во всех инструкциях языка обработки данных: SELECT, INSERT, UPDATE, DELETE и, если поддерживается, SELECT FOR UPDATE и positioned update and delete statements.
SQL_CU_PROCEDURE_INVOCATION = каталоги поддерживаются в инструкции вызова процедуры ODBC.
SQL_CU_TABLE_DEFINITION = каталоги поддерживаются во всех инструкциях определения таблицы: CREATE TABLE, CREATE VIEW, ALTER TABLE, DROP TABLE и DROP VIEW.
SQL_CU_INDEX_DEFINITION = каталоги поддерживаются во всех инструкциях определения индекса: CREATE INDEX и DROP INDEX.
SQL_CU_PRIVILEGE_DEFINITION = каталоги поддерживаются во всех инструкциях определения привилегий: GRANT и REVOKE.

Значение 0 возвращается, если каталоги не поддерживаются источником данных. Чтобы определить, поддерживаются ли каталоги, приложение вызывает SQLGetInfo с типом сведений SQL_CATALOG_NAME. Полноуровневый драйвер SQL-92 всегда возвращает битовую маску со всеми этими битами.

Этот InfoType был переименован для ODBC 3.0 из SQL_QUALIFIER_USAGE ODBC 2.0 InfoType .
SQL_COLLATION_SEQ 3.0 Имя последовательности сортировки. Это символьная строка, указывающая имя сортировки по умолчанию для набора символов по умолчанию для этого сервера (например, ISO 8859-1 или EBCDIC). Если это неизвестно, возвращается пустая строка. Драйвер полного уровня SQL-92 всегда возвращает непустую строку.
SQL_COLUMN_ALIAS 2.0 Символьная строка: "Y", если источник данных поддерживает псевдонимы столбцов; в противном случае — "N".

Псевдоним столбца — это альтернативное имя, которое можно указать для столбца в списке выбора с помощью предложения AS. Драйвер уровня входа SQL-92 всегда возвращает значение "Y".
SQL_CONCAT_NULL_BEHAVIOR 1.0 Значение SQLUSMALLINT, указывающее, как источник данных обрабатывает объединение столбцов типа данных символов NULL со столбцами типа данных, не допускающими значения NULL:
SQL_CB_NULL = результат имеет значение NULL.
SQL_CB_NON_NULL = результат — объединение столбцов или столбцов, не являющихся значениями NULL.

Драйвер уровня входа SQL-92 всегда возвращает SQL_CB_NULL.
SQL_CONVERT_BIGINT
SQL_CONVERT_BINARY
SQL_CONVERT_BIT
SQL_CONVERT_CHAR
SQL_CONVERT_GUID
SQL_CONVERT_DATE
SQL_CONVERT_DECIMAL
SQL_CONVERT_DOUBLE
SQL_CONVERT_FLOAT
SQL_CONVERT_INTEGER
SQL_CONVERT_INTERVAL_YEAR_MONTH
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_LONGVARBINARY
SQL_CONVERT_LONGVARCHAR
SQL_CONVERT_NUMERIC
SQL_CONVERT_REAL
SQL_CONVERT_SMALLINT
SQL_CONVERT_TIME
SQL_CONVERT_TIMESTAMP
SQL_CONVERT_TINYINT
SQL_CONVERT_VARBINARY
SQL_CONVERT_VARCHAR
1.0 Битовая маска SQLUINTEGER. Битовая маска указывает на преобразования, поддерживаемые источником данных с скалярной функцией CONVERT для данных типа, именованного в InfoType. Если битовая маска равна нулю, источник данных не поддерживает никаких преобразований из данных именованного типа, включая преобразование в тот же тип данных.

Например, чтобы определить, поддерживает ли источник данных преобразование SQL_INTEGER данных в тип данных SQL_BIGINT, приложение вызывает SQLGetInfo с infoType SQL_CONVERT_INTEGER. Приложение выполняет операцию AND с возвращенной битовой маской и SQL_CVT_BIGINT. Если результирующее значение ненулевое, преобразование поддерживается.

Для определения поддерживаемых преобразований используются следующие битовые маски:
SQL_CVT_BIGINT (ODBC 1.0)
SQL_CVT_BINARY (ODBC 1.0)
SQL_CVT_BIT (ODBC 1.0)
SQL_CVT_GUID (ODBC 3.5)
SQL_CVT_CHAR (ODBC 1.0)
SQL_CVT_DATE (ODBC 1.0)
SQL_CVT_DECIMAL (ODBC 1.0)
SQL_CVT_DOUBLE (ODBC 1.0)
SQL_CVT_FLOAT (ODBC 1.0)
SQL_CVT_INTEGER (ODBC 1.0)
SQL_CVT_INTERVAL_YEAR_MONTH (ODBC 3.0)
SQL_CVT_INTERVAL_DAY_TIME (ODBC 3.0)
SQL_CVT_LONGVARBINARY (ODBC 1.0)
SQL_CVT_LONGVARCHAR (ODBC 1.0)
SQL_CVT_NUMERIC (ODBC 1.0)
SQL_CVT_REAL (ODBC 1.0)
SQL_CVT_SMALLINT (ODBC 1.0)
SQL_CVT_TIME (ODBC 1.0)
SQL_CVT_TIMESTAMP (ODBC 1.0)
SQL_CVT_TINYINT (ODBC 1.0)
SQL_CVT_VARBINARY (ODBC 1.0)
SQL_CVT_VARCHAR (ODBC 1.0)
SQL_CONVERT_FUNCTIONS 1.0 Битовая маска SQLUINTEGER, перечисляющая скалярные функции преобразования, поддерживаемые драйвером и связанным источником данных.

Для определения поддерживаемых функций преобразования используется следующая битовая маска:
SQL_FN_CVT_CASTSQL_FN_CVT_CONVERT
SQL_CORRELATION_NAME 1.0 Значение SQLUSMALLINT, указывающее, поддерживаются ли имена корреляции таблиц:
SQL_CN_NONE = имена корреляций не поддерживаются.
SQL_CN_DIFFERENT = имена корреляций поддерживаются, но должны отличаться от имен представленных таблиц.
SQL_CN_ANY = имена корреляции поддерживаются и могут быть любым допустимым пользовательским именем.

Драйвер уровня входа SQL-92 всегда возвращает SQL_CN_ANY.
SQL_CREATE_ASSERTION 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции CREATE ASSERT, как определено в SQL-92, поддерживаемой источником данных.

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

Следующие биты указывают поддерживаемый атрибут ограничения, если возможность явно указывать атрибуты ограничений поддерживается (см. SQL_ALTER_TABLE и типы сведений SQL_CREATE_TABLE):
SQL_CA_CONSTRAINT_INITIALLY_DEFERRED
SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE
SQL_CA_CONSTRAINT_DEFERRABLE
SQL_CA_CONSTRAINT_NON_DEFERRABLE

Полноуровневый драйвер SQL-92 всегда возвращает все эти параметры как поддерживаемые. Возвращаемое значение "0" означает, что инструкция CREATE ASSERT не поддерживается.
SQL_CREATE_CHARACTER_SET 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции CREATE CHARACTER SET , как определено в SQL-92, поддерживаемой источником данных.

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

Полноуровневый драйвер SQL-92 всегда возвращает все эти параметры как поддерживаемые. Возвращаемое значение "0" означает, что инструкция CREATE CHARACTER SET не поддерживается.
SQL_CREATE_COLLATION 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции CREATE COLLATION, как определено в SQL-92, поддерживаемой источником данных.

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

Драйвер полного уровня SQL-92 всегда возвращает этот параметр как поддерживаемый. Возвращаемое значение "0" означает, что инструкция CREATE COLLATION не поддерживается.
SQL_CREATE_DOMAIN 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции CREATE DOMAIN, как определено в SQL-92, поддерживаемой источником данных.

Для определения поддерживаемых предложений используются следующие битовые маски:
SQL_CDO_CREATE_DOMAIN = инструкция CREATE DOMAIN поддерживается (промежуточный уровень).
SQL_CDO_CONSTRAINT_NAME_DEFINITION = <определение> имени ограничения поддерживается для именования ограничений домена (промежуточный уровень).

Следующие биты указывают возможность создания ограничений столбцов:
SQL_CDO_DEFAULT = указание ограничений домена поддерживается (промежуточный уровень)
SQL_CDO_CONSTRAINT = указание значений по умолчанию домена поддерживается (промежуточный уровень)
SQL_CDO_COLLATION = настройка сортировки домена поддерживается (полный уровень)

Следующие биты указывают поддерживаемые атрибуты ограничений при поддержке ограничений домена (SQL_CDO_DEFAULT задано):
SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED (полный уровень)
SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE (полный уровень)
SQL_CDO_CONSTRAINT_DEFERRABLE (полный уровень)
SQL_CDO_CONSTRAINT_NON_DEFERRABLE (полный уровень)

Возвращаемое значение "0" означает, что инструкция CREATE DOMAIN не поддерживается.
SQL_CREATE_SCHEMA 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции CREATE SCHEMA , как определено в SQL-92, поддерживаемой источником данных.

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

Драйвер уровня SQL-92 всегда возвращает параметры SQL_CS_CREATE_SCHEMA и SQL_CS_AUTHORIZATION в соответствии с поддерживаемыми параметрами. Они также должны поддерживаться на уровне входа SQL-92, но не обязательно в качестве инструкций SQL. Полноуровневый драйвер SQL-92 всегда возвращает все эти параметры как поддерживаемые.
SQL_CREATE_TABLE 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции CREATE TABLE , как определено в SQL-92, поддерживаемой источником данных.

Уровень соответствия SQL-92 или FIPS, на котором эта функция должна поддерживаться, отображается в скобках рядом с каждой битовой маской.

Для определения поддерживаемых предложений используются следующие битовые маски:
SQL_CT_CREATE_TABLE = поддерживается инструкция CREATE TABLE. (Уровень входа)
SQL_CT_TABLE_CONSTRAINT = указание ограничений таблицы поддерживается (переходный уровень FIPS)
SQL_CT_CONSTRAINT_NAME_DEFINITION = <предложение определения> имени ограничения поддерживается для именования столбцов и ограничений таблицы (промежуточный уровень)

Следующие биты указывают возможность создания временных таблиц:
SQL_CT_COMMIT_PRESERVE = удаленные строки сохраняются при фиксации. (Полный уровень)
SQL_CT_COMMIT_DELETE = удаленные строки удаляются при фиксации. (Полный уровень)
SQL_CT_GLOBAL_TEMPORARY = глобальные временные таблицы можно создать. (Полный уровень)
SQL_CT_LOCAL_TEMPORARY = можно создать локальные временные таблицы. (Полный уровень)

Следующие биты указывают возможность создания ограничений столбцов:
SQL_CT_COLUMN_CONSTRAINT = указание ограничений столбцов поддерживается (переходный уровень FIPS)
SQL_CT_COLUMN_DEFAULT = настройка значений по умолчанию столбцов поддерживается (уровень перехода FIPS)
SQL_CT_COLUMN_COLLATION = настройка сортировки столбцов поддерживается (полный уровень)

Следующие биты указывают поддерживаемые атрибуты ограничения, если поддерживаются ограничения столбцов или таблиц:
SQL_CT_CONSTRAINT_INITIALLY_DEFERRED (полный уровень)
SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE (полный уровень)
SQL_CT_CONSTRAINT_DEFERRABLE (полный уровень)
SQL_CT_CONSTRAINT_NON_DEFERRABLE (полный уровень)
SQL_CREATE_TRANSLATION 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции CREATE TRANSLATION , как определено в SQL-92, поддерживаемой источником данных.

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

Полноуровневый драйвер SQL-92 всегда возвращает эти параметры в качестве поддерживаемых. Возвращаемое значение "0" означает, что инструкция CREATE TRANSLATION не поддерживается.
SQL_CREATE_VIEW 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции CREATE VIEW , как определено в SQL-92, поддерживаемой источником данных.

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

Возвращаемое значение "0" означает, что инструкция CREATE VIEW не поддерживается.

Драйвер уровня входа SQL-92 всегда возвращает параметры SQL_CV_CREATE_VIEW и SQL_CV_CHECK_OPTION в соответствии с поддерживаемыми параметрами.

Полноуровневый драйвер SQL-92 всегда возвращает все эти параметры как поддерживаемые.
SQL_CURSOR_COMMIT_BEHAVIOR 1.0 Значение SQLUSMALLINT, указывающее, как операция COMMIT влияет на курсоры и подготовленные инструкции в источнике данных (поведение источника данных при фиксации транзакции).

Значение этого атрибута отражает текущее состояние следующего параметра: SQL_COPT_SS_PRESERVE_CURSORS.
SQL_CB_DELETE = закрыть курсоры и удалить подготовленные инструкции. Для повторного использования курсора приложение должно перенаправлять и повторно выполнять инструкцию.
SQL_CB_CLOSE = закрыть курсоры. Для подготовленных инструкций приложение может вызывать SQLExecute в инструкции без повторного вызова SQLPrepare . По умолчанию для драйвера ODBC SQL используется SQL_CB_CLOSE. Это означает, что драйвер ODBC SQL закроет курсоры при фиксации транзакции.
SQL_CB_PRESERVE = сохранение курсоров в той же позиции, что и перед операцией COMMIT . Приложение может продолжать получать данные или закрывать курсор и повторно выполнять инструкцию без повторной настройки.
SQL_CURSOR_ROLLBACK_BEHAVIOR 1.0 Значение SQLUSMALLINT, указывающее, как операция ROLLBACK влияет на курсоры и подготовленные инструкции в источнике данных:
SQL_CB_DELETE = закрыть курсоры и удалить подготовленные инструкции. Для повторного использования курсора приложение должно перенаправлять и повторно выполнять инструкцию.
SQL_CB_CLOSE = закрыть курсоры. Для подготовленных инструкций приложение может вызывать SQLExecute в инструкции без повторного вызова SQLPrepare .
SQL_CB_PRESERVE = сохранение курсоров в той же позиции, что и перед операцией ROLLBACK . Приложение может продолжать получать данные или закрывать курсор и повторно выполнять инструкцию без повторной настройки.
SQL_CURSOR_SENSITIVITY 3.0 Значение SQLUINTEGER, указывающее поддержку конфиденциальности курсора:
SQL_INSENSITIVE = все курсоры в дескрипторе инструкции показывают результирующий набор без отражения изменений, внесенных в него любым другим курсором в той же транзакции.
SQL_UNSPECIFIED = не указано, вносят ли курсоры в дескриптор инструкции, видимые изменения, внесенные в результирующий набор другим курсором в той же транзакции. Курсоры в дескрипторе инструкции могут не отображаться, некоторые или все такие изменения.
SQL_SENSITIVE = курсоры чувствительны к изменениям, которые были сделаны другими курсорами в той же транзакции.

Драйвер уровня входа SQL-92 всегда возвращает параметр SQL_UNSPECIFIED по мере поддержки.

Полноуровневый драйвер SQL-92 всегда возвращает параметр SQL_INSENSITIVE по мере поддержки.
SQL_DATA_SOURCE_NAME 1.0 Символьная строка с именем источника данных, которая использовалась во время подключения. Если приложение называется SQLConnect, это значение аргумента szDSN . Если приложение называется SQLDriverConnect или SQLBrowseConnect, это значение ключевого слова DSN в строка подключения передано драйверу. Если строка подключения не содержал ключевое слово DSN (например, когда он содержит ключевое слово DRIVER), это пустая строка.
SQL_DATA_SOURCE_READ_ONLY 1.0 Строка символов. Значение "Y", если источник данных имеет режим READ ONLY, значение "N", если оно в противном случае.

Эта характеристика относится только к самому источнику данных; Это не является характеристикой драйвера, который обеспечивает доступ к источнику данных. Драйвер, который является чтением и записью, можно использовать с источником данных, который доступен только для чтения. Если драйвер доступен только для чтения, все источники данных должны быть доступны только для чтения и должны возвращать SQL_DATA_SOURCE_READ_ONLY.
SQL_DATABASE_NAME 1.0 Символьная строка с именем текущей базы данных, используемой, если источник данных определяет именованный объект с именем "база данных".

В ODBC 3.x значение, возвращаемое для этого InfoType , также может быть возвращено путем вызова SQLGetConnectAttr с аргументом атрибута SQL_ATTR_CURRENT_CATALOG.
SQL_DATETIME_LITERALS 3.0 Битовая маска SQLUINTEGER, перечисляющая литералы даты и времени SQL-92, поддерживаемые источником данных. Обратите внимание, что это литералы даты и времени, перечисленные в спецификации SQL-92, и отличаются от предложений escape-даты и времени, определенных ODBC. Дополнительные сведения о предложениях escape-символов даты и времени ODBC см. в разделе "Литералы даты" и "Время" и "Метка времени".

Драйвер с переходным уровнем FIPS всегда возвращает значение "1" в битовой маске для битов в следующем списке. Значение "0" означает, что литералы даты и времени SQL-92 не поддерживаются.

Следующие битовые маски используются для определения поддерживаемых литералом:
SQL_DL_SQL92_DATE
SQL_DL_SQL92_TIME
SQL_DL_SQL92_TIMESTAMP
SQL_DL_SQL92_INTERVAL_YEAR
SQL_DL_SQL92_INTERVAL_MONTH
SQL_DL_SQL92_INTERVAL_DAY
SQL_DL_SQL92_INTERVAL_HOUR
SQL_DL_SQL92_INTERVAL_MINUTE
SQL_DL_SQL92_INTERVAL_SECOND
SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH
SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR
SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE
SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND
SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE
SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND
SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND
SQL_DBMS_NAME 1.0 Символьная строка с именем продукта СУБД, доступного драйвером.
SQL_DBMS_VER 1.0 Символьная строка, указывающая версию продукта СУБД, доступ к которому обращается драйвер. Версия формы ##.### где первые две цифры являются основной версией, следующие две цифры являются дополнительной версией, а последние четыре цифры — версия выпуска. Драйвер должен отобразить версию продукта СУБД в этой форме, но также может добавить версию продукта СУБД. Например, "04.01.0000 Rdb 4.1".
SQL_DDL_INDEX 3.0 Значение SQLUINTEGER, указывающее на поддержку создания и удаления индексов:
SQL_DI_CREATE_INDEX
SQL_DI_DROP_INDEX
SQL_DEFAULT_TXN_ISOLATION 1.0 Значение SQLUINTEGER, указывающее уровень изоляции транзакций по умолчанию, поддерживаемый драйвером или источником данных, или ноль, если источник данных не поддерживает транзакции. Для определения уровней изоляции транзакций используются следующие термины:
Грязная транзакция чтения 1 изменяет строку. Транзакция 2 считывает измененную строку перед фиксацией изменения транзакцией 1. Если транзакция 1 откатывает изменение, транзакция 2 будет считывать строку, которая, как считается, никогда не существовала.
Не повторяемая транзакция чтения 1 считывает строку. Транзакция 2 обновляет или удаляет эту строку и фиксирует это изменение. Если транзакция 1 пытается перечитать строку, она получит различные значения строк или обнаружит, что строка удалена.
Фантомная транзакция 1 считывает набор строк, удовлетворяющих некоторым критериям поиска. Транзакция 2 создает одну или несколько строк (с помощью вставок или обновлений), которые соответствуют критериям поиска. Если транзакция 1 повторно выполняет инструкцию, которая считывает строки, она получает другой набор строк.

Если источник данных поддерживает транзакции, драйвер возвращает один из следующих битовых масок:
SQL_TXN_READ_UNCOMMITTED = Грязные операции чтения, не повторяемые операции чтения и фантомы возможны.
SQL_TXN_READ_COMMITTED = грязные операции чтения недоступны. Не повторяемые операции чтения и фантомы возможны.
SQL_TXN_REPEATABLE_READ = грязные операции чтения и не повторяемые операции чтения невозможно. Фантомы возможны.
SQL_TXN_SERIALIZABLE = транзакции сериализуются. Сериализуемые транзакции не разрешают грязные операции чтения, не повторяемые операции чтения или фантомы.
SQL_DESCRIBE_PARAMETER 3.0 Символьная строка: "Y", если можно описать параметры; "N", если нет.

Драйвер полного уровня SQL-92 обычно возвращает значение "Y", так как он будет поддерживать инструкцию DESCRIBE INPUT . Поскольку это не напрямую указывает базовую поддержку SQL, однако описание параметров может не поддерживаться даже в драйвере полного уровня SQL-92.
SQL_DM_VER 3.0 Символьная строка с версией диспетчера драйверов. Версия формы ###.#.## где:
Первый набор двух цифр является основной версией ODBC, как указано константой SQL_SPEC_MAJOR.
Второй набор двух цифр является дополнительной версией ODBC, как указано константой SQL_SPEC_MINOR.
Третий набор четырех цифр — основной номер сборки диспетчера драйверов.
Последний набор четырех цифр — дополнительный номер сборки диспетчера драйверов.
Версия Диспетчера драйверов Windows 7 — 03.80. Версия Диспетчера драйверов Windows 8 — 03.81.
SQL_DRIVER_AWARE_POOLING_SUPPORTED 3,8 Значение SQLUINTEGER, указывающее, поддерживает ли драйвер пул с поддержкой драйверов. (Дополнительные сведения см. в разделе Пул подключений с поддержкой драйверов.

SQL_DRIVER_AWARE_POOLING_CAPABLE указывает, что драйвер может поддерживать механизм пула с поддержкой драйверов.
SQL_DRIVER_AWARE_POOLING_NOT_CAPABLE указывает, что драйвер не может поддерживать механизм пула с поддержкой драйверов.

Драйверу не нужно реализовать SQL_DRIVER_AWARE_POOLING_SUPPORTED, а диспетчер драйверов не будет учитывать возвращаемое значение драйвера.
SQL_DRIVER_HDBCSQL_DRIVER_HENV 1.0 Значение SQLULEN, дескриптор среды драйвера или дескриптор соединения, определяемый аргументом InfoType.

Эти типы информации реализуются только диспетчером драйверов.
SQL_DRIVER_HDESC 3.0 Значение SQLULEN, дескриптор драйвера, определенный дескриптором дескриптора диспетчера драйверов, который должен передаваться для ввода в *InfoValuePtr из приложения. В этом случае InfoValuePtr является как входным, так и выходным аргументом. Дескриптор ввода, переданный в *InfoValuePtr , должен быть явно или неявно выделен в ConnectionHandle.

Приложение должно сделать копию дескриптора диспетчера драйверов перед вызовом SQLGetInfo с этим типом сведений, чтобы убедиться, что дескриптор не перезаписан в выходных данных.

Этот тип информации реализуется только диспетчером драйверов.
SQL_DRIVER_HLIB 2.0 Значение SQLULEN, hinst из библиотеки загрузки, возвращенное диспетчеру драйверов при загрузке библиотеки DLL драйвера в операционной системе Microsoft Windows или ее эквиваленте в другой операционной системе. Дескриптор действителен только для дескриптора подключения, указанного в вызове SQLGetInfo.

Этот тип информации реализуется только диспетчером драйверов.
SQL_DRIVER_HSTMT 1.0 Значение SQLULEN, дескриптор инструкции драйвера, определенный дескриптором инструкции Driver Manager, который должен передавать входные данные в *InfoValuePtr из приложения. В этом случае InfoValuePtr является как входным, так и выходным аргументом. Дескриптор входной инструкции, переданный в *InfoValuePtr , должен быть выделен для аргумента ConnectionHandle.

Приложение должно сделать копию дескриптора инструкции Диспетчера драйверов перед вызовом SQLGetInfo с этим типом сведений, чтобы убедиться, что дескриптор не перезаписан в выходных данных.

Этот тип информации реализуется только диспетчером драйверов.
SQL_DRIVER_NAME 1.0 Символьная строка с именем файла драйвера, используемого для доступа к источнику данных.
SQL_DRIVER_ODBC_VER 2.0 Символьная строка с версией ODBC, которую поддерживает драйвер. Версия формы ##.#, где первые две цифры являются основной версией, а следующие две цифры являются дополнительной версией. SQL_SPEC_MAJOR и SQL_SPEC_MINOR определить основные и незначительные номера версий. Для версии ODBC, описанной в этом руководстве, это 3 и 0, а драйвер должен вернуть "03.00".

Диспетчер драйверов ODBC не изменит возвращаемое значение SQLGetInfo(SQL_DRIVER_ODBC_VER) для обеспечения обратной совместимости существующих приложений. Драйвер указывает, какое значение будет возвращено. Однако драйвер, поддерживающий расширяемость типа данных C, должен возвращать значение 3.8 (или выше), когда приложение вызывает SQLSetEnvAttr , чтобы задать SQL_ATTR_ODBC_VERSION значение 3.8. Дополнительные сведения о типах данных см. в разделе Типы данных C в ODBC.
SQL_DRIVER_VER 1.0 Символьная строка с версией драйвера и при необходимости описание драйвера. Как минимум, версия имеет форму ##.##.### где первые две цифры являются основной версией, следующие две цифры являются дополнительной версией, а последние четыре цифры — версия выпуска.
SQL_DROP_ASSERTION 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции DROP ASSERT , как определено в SQL-92, поддерживаемой источником данных.

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

Драйвер полного уровня SQL-92 всегда возвращает этот параметр как поддерживаемый.
SQL_DROP_CHARACTER_SET 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции DROP CHARACTER SET , как определено в SQL-92, поддерживаемой источником данных.

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

Драйвер полного уровня SQL-92 всегда возвращает этот параметр как поддерживаемый.
SQL_DROP_COLLATION 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции DROP COLLATION , как определено в SQL-92, поддерживаемой источником данных.

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

Драйвер полного уровня SQL-92 всегда возвращает этот параметр как поддерживаемый.
SQL_DROP_DOMAIN 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции DROP DOMAIN , как определено в SQL-92, поддерживаемой источником данных.

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

Драйвер уровня SQL-92 всегда возвращает все эти параметры в соответствии с поддерживаемыми.
SQL_DROP_SCHEMA 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции DROP SCHEMA , как определено в SQL-92, поддерживаемой источником данных.

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

Драйвер уровня SQL-92 всегда возвращает все эти параметры в соответствии с поддерживаемыми.
SQL_DROP_TABLE 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции DROP TABLE , как определено в SQL-92, поддерживаемой источником данных.

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

Драйвер, соответствующий переходному уровню FIPS, всегда возвращает все эти параметры в соответствии с поддерживаемыми.
SQL_DROP_TRANSLATION 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции DROP TRANSLATION , как определено в SQL-92, поддерживаемой источником данных.

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

Драйвер полного уровня SQL-92 всегда возвращает этот параметр как поддерживаемый.
SQL_DROP_VIEW 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения в инструкции DROP VIEW, как определено в SQL-92, поддерживаемой источником данных.

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

Драйвер, соответствующий переходному уровню FIPS, всегда возвращает все эти параметры в соответствии с поддерживаемыми.
SQL_DYNAMIC_CURSOR_ATTRIBUTES1 3.0 Битовая маска SQLUINTEGER, описывающая атрибуты динамического курсора, поддерживаемого драйвером. Эта битовая маска содержит первое подмножество атрибутов; для второго подмножества см. SQL_DYNAMIC_CURSOR_ATTRIBUTES2.

Для определения поддерживаемых атрибутов используются следующие битовые маски:
SQL_CA1_NEXT = аргумент FetchOrientation SQL_FETCH_NEXT поддерживается в вызове SQLFetchScroll , когда курсор является динамическим курсором.
SQL_CA1_ABSOLUTE = аргументы FetchOrientation SQL_FETCH_FIRST, SQL_FETCH_LAST и SQL_FETCH_ABSOLUTE поддерживаются в вызове SQLFetchScroll , когда курсор является динамическим курсором. (Набор строк, который будет возвращен, не зависит от текущей позиции курсора.)
SQL_CA1_RELATIVE = аргументы FetchOrientation SQL_FETCH_PRIOR и SQL_FETCH_RELATIVE поддерживаются в вызове SQLFetchScroll , когда курсор является динамическим курсором. (Набор строк, который будет возвращен, зависит от текущей позиции курсора. Обратите внимание, что это отличается от SQL_FETCH_NEXT, так как в курсоре только для пересылки поддерживается только SQL_FETCH_NEXT.)
SQL_CA1_BOOKMARK = аргумент FetchOrientation SQL_FETCH_BOOKMARK поддерживается в вызове SQLFetchScroll , когда курсор является динамическим курсором.
SQL_CA1_LOCK_EXCLUSIVE = аргумент LockType SQL_LOCK_EXCLUSIVE поддерживается в вызове SQLSetPos , когда курсор является динамическим курсором.
SQL_CA1_LOCK_NO_CHANGE = аргумент LockType SQL_LOCK_NO_CHANGE поддерживается в вызове SQLSetPos , когда курсор является динамическим курсором.
SQL_CA1_LOCK_UNLOCK = аргумент LockType SQL_LOCK_UNLOCK поддерживается в вызове SQLSetPos , когда курсор является динамическим курсором.
SQL_CA1_POS_POSITION = аргумент операции SQL_POSITION поддерживается в вызове SQLSetPos , когда курсор является динамическим курсором.
SQL_CA1_POS_UPDATE = аргумент операции SQL_UPDATE поддерживается в вызове SQLSetPos , когда курсор является динамическим курсором.
SQL_CA1_POS_DELETE = аргумент операции SQL_DELETE поддерживается в вызове SQLSetPos , когда курсор является динамическим курсором.
SQL_CA1_POS_REFRESH = аргумент операции SQL_REFRESH поддерживается в вызове SQLSetPos , когда курсор является динамическим курсором.
SQL_CA1_POSITIONED_UPDATE = инструкция UPDATE WHERE CURRENT OF SQL поддерживается, если курсор является динамическим курсором. (Драйвер уровня входа SQL-92 всегда возвращает этот параметр как поддерживаемый.)
SQL_CA1_POSITIONED_DELETE = инструкция DELETE WHERE CURRENT OF SQL поддерживается, если курсор является динамическим курсором. (Драйвер уровня входа SQL-92 всегда возвращает этот параметр как поддерживаемый.)
SQL_CA1_SELECT_FOR_UPDATE = инструкция SELECT FOR UPDATE SQL поддерживается, если курсор является динамическим курсором. (Драйвер уровня входа SQL-92 всегда возвращает этот параметр как поддерживаемый.)
SQL_CA1_BULK_ADD = аргумент операции SQL_ADD поддерживается в вызове SQLBulkOperations , когда курсор является динамическим курсором.
SQL_CA1_BULK_UPDATE_BY_BOOKMARK = аргумент операции SQL_UPDATE_BY_BOOKMARK поддерживается в вызове SQLBulkOperations , когда курсор является динамическим курсором.
SQL_CA1_BULK_DELETE_BY_BOOKMARK = аргумент операции SQL_DELETE_BY_BOOKMARK поддерживается в вызове SQLBulkOperations , когда курсор является динамическим курсором.
SQL_CA1_BULK_FETCH_BY_BOOKMARK = аргумент операции SQL_FETCH_BY_BOOKMARK поддерживается в вызове SQLBulkOperations , когда курсор является динамическим курсором.

Драйвер уровня SQL-92, соответствующий промежуточному уровню, обычно возвращает SQL_CA1_NEXT, SQL_CA1_ABSOLUTE и SQL_CA1_RELATIVE параметры, так как поддерживает прокручиваемые курсоры через внедренную инструкцию SQL FETCH. Поскольку это не напрямую определяет базовую поддержку SQL, но прокручиваемые курсоры могут не поддерживаться, даже для драйвера, соответствующего промежуточному уровню SQL-92.
SQL_DYNAMIC_CURSOR_ATTRIBUTES2 3.0 Битовая маска SQLUINTEGER, описывающая атрибуты динамического курсора, поддерживаемого драйвером. Эта битовая маска содержит второе подмножество атрибутов; для первого подмножества см. SQL_DYNAMIC_CURSOR_ATTRIBUTES1.

Для определения поддерживаемых атрибутов используются следующие битовые маски:
SQL_CA2_READ_ONLY_CONCURRENCY = динамический курсор только для чтения, в котором не разрешены обновления, поддерживается. (Атрибут инструкции SQL_ATTR_CONCURRENCY может быть SQL_CONCUR_READ_ONLY для динамического курсора.
SQL_CA2_LOCK_CONCURRENCY = динамический курсор, который использует самый низкий уровень блокировки, достаточно, чтобы убедиться, что строка может быть обновлена. (Атрибут инструкции SQL_ATTR_CONCURRENCY может быть SQL_CONCUR_LOCK для динамического курсора.) Эти блокировки должны соответствовать уровню изоляции транзакций, заданному атрибутом подключения SQL_ATTR_TXN_ISOLATION.
SQL_CA2_OPT_ROWVER_CONCURRENCY = динамический курсор, использующий элемент управления оптимистичным параллелизмом, сравнивающий версии строк, поддерживается. (Атрибут инструкции SQL_ATTR_CONCURRENCY может быть SQL_CONCUR_ROWVER для динамического курсора.)
SQL_CA2_OPT_VALUES_CONCURRENCY = динамический курсор, использующий элемент управления сравнения оптимистических параллелизмов, поддерживается. (Атрибут инструкции SQL_ATTR_CONCURRENCY может быть SQL_CONCUR_VALUES для динамического курсора.)
SQL_CA2_SENSITIVITY_ADDITIONS = добавленные строки видны динамическому курсору; Курсор может прокручиваться до этих строк. (Где эти строки добавляются к курсору, зависят от драйвера.)
SQL_CA2_SENSITIVITY_DELETIONS = удаленные строки больше не доступны динамическому курсору и не оставляйте "отверстие" в результирующем наборе; После прокрутки динамического курсора из удаленной строки он не может вернуться в такую строку.
SQL_CA2_SENSITIVITY_UPDATES = обновления строк видны динамическому курсору; Если динамический курсор прокручивается и возвращается в обновленную строку, данные, возвращаемые курсором, являются обновленными данными, а не исходными данными.
SQL_CA2_MAX_ROWS_SELECT = атрибут инструкции SQL_ATTR_MAX_ROWS влияет на инструкции SELECT , когда курсор является динамическим курсором.
SQL_CA2_MAX_ROWS_INSERT = атрибут инструкции SQL_ATTR_MAX_ROWS влияет на инструкции INSERT , когда курсор является динамическим курсором.
SQL_CA2_MAX_ROWS_DELETE = атрибут инструкции SQL_ATTR_MAX_ROWS влияет на инструкции DELETE , когда курсор является динамическим курсором.
SQL_CA2_MAX_ROWS_UPDATE = атрибут инструкции SQL_ATTR_MAX_ROWS влияет на инструкции UPDATE , когда курсор является динамическим курсором.
SQL_CA2_MAX_ROWS_CATALOG = атрибут инструкции SQL_ATTR_MAX_ROWS влияет на результирующие наборы CATALOG , когда курсор является динамическим курсором.
SQL_CA2_MAX_ROWS_AFFECTS_ALL = атрибут инструкции SQL_ATTR_MAX_ROWS влияет на инструкции SELECT, INSERT, DELETE и UPDATE , а также результирующие наборы CATALOG , когда курсор является динамическим курсором.
SQL_CA2_CRC_EXACT = Точное число строк доступно в поле диагностики SQL_DIAG_CURSOR_ROW_COUNT, когда курсор является динамическим курсором.
SQL_CA2_CRC_APPROXIMATE = приблизительное число строк доступно в поле диагностики SQL_DIAG_CURSOR_ROW_COUNT, когда курсор является динамическим курсором.
SQL_CA2_SIMULATE_NON_UNIQUE = Драйвер не гарантирует, что имитированные операторы обновления или удаления влияют только на одну строку, если курсор является динамическим курсором; это ответственность за обеспечение этого приложения. (Если оператор влияет на несколько строк, SQLExecute или SQLExecDirect возвращает SQLSTATE 01001 [конфликт операции курсора].) Чтобы задать это поведение, приложение вызывает SQLSetStmtAttr с атрибутом SQL_ATTR_SIMULATE_CURSOR, равным SQL_SC_NON_UNIQUE.
SQL_CA2_SIMULATE_TRY_UNIQUE = Драйвер пытается гарантировать, что имитированные операторы обновления или удаления влияют только на одну строку, если курсор является динамическим курсором. Драйвер всегда выполняет такие инструкции, даже если они могут повлиять на несколько строк, например при отсутствии уникального ключа. (Если оператор влияет на несколько строк, SQLExecute или SQLExecDirect возвращает SQLSTATE 01001 [конфликт операции курсора].) Чтобы задать это поведение, приложение вызывает SQLSetStmtAttr с атрибутом SQL_ATTR_SIMULATE_CURSOR, равным SQL_SC_TRY_UNIQUE.
SQL_CA2_SIMULATE_UNIQUE = Драйвер гарантирует, что имитированные операторы обновления или удаления влияют только на одну строку, если курсор является динамическим курсором. Если драйвер не может гарантировать это для данной инструкции, SQLExecDirect или SQLPrepare возвращают SQLSTATE 01001 (конфликт операции курсора). Чтобы задать это поведение, приложение вызывает SQLSetStmtAttr с атрибутом SQL_ATTR_SIMULATE_CURSOR, равным SQL_SC_UNIQUE.
SQL_EXPRESSIONS_IN_ORDERBY 1.0 Символьная строка: "Y", если источник данных поддерживает выражения в списке ORDER BY ; "N", если это не так.
SQL_FILE_USAGE 2.0 Значение SQLUSMALLINT, указывающее, как драйвер с одним уровнем напрямую обрабатывает файлы в источнике данных:
SQL_FILE_NOT_SUPPORTED = драйвер не является драйвером одного уровня. Например, драйвер ORACLE является двухуровневым драйвером.
SQL_FILE_TABLE = драйвер с одним уровнем обрабатывает файлы в источнике данных в виде таблиц. Например, драйвер Xbase обрабатывает каждый Xbase-файл как таблицу.
SQL_FILE_CATALOG = Драйвер с одним уровнем обрабатывает файлы в источнике данных как каталог. Например, драйвер Microsoft Access обрабатывает каждый файл Microsoft Access как полную базу данных.

Приложение может использовать это для определения того, как пользователи будут выбирать данные. Например, пользователи Xbase часто думают о данных, хранящихся в файлах, в то время как пользователи ORACLE и Microsoft Access обычно считают данные хранимыми в таблицах.

Когда пользователь выбирает источник данных Xbase, приложение может отобразить диалоговое окно "Открыть файл Windows " , когда пользователь выбирает источник данных Microsoft Access или ORACLE, приложение может отобразить диалоговое окно " Выбор таблицы ".
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 3.0 Битовая маска SQLUINTEGER, описывающая атрибуты только для перенаправления курсора, поддерживаемого драйвером. Эта битовая маска содержит первое подмножество атрибутов; Для второго подмножества см. SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2.

Для определения поддерживаемых атрибутов используются следующие битовые маски:
SQL_CA1_NEXT
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

Описание этих битовых элементов см. в SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (и замените "курсор только для пересылки" динамическим курсором в описаниях).
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 3.0 Битовая маска SQLUINTEGER, описывающая атрибуты только для перенаправления курсора, поддерживаемого драйвером. Эта битовая маска содержит второе подмножество атрибутов; Для первого подмножества см. SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1.

Для определения поддерживаемых атрибутов используются следующие битовые маски:
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

Описание этих битовых масок см. в SQL_DYNAMIC_CURSOR_ATTRIBUTES2 (и замените "курсор только для пересылки" динамическим курсором в описаниях).
SQL_GETDATA_EXTENSIONS 2.0 Битовая маска SQLUINTEGER, перечисляющая расширения в SQLGetData.

Следующие битовые маски используются вместе с флагом для определения общих расширений, поддерживаемых драйвером для SQLGetData:
SQL_GD_ANY_COLUMN = SQLGetData можно вызывать для любого несвязанного столбца, в том числе до последнего привязанного столбца. Обратите внимание, что столбцы должны вызываться в порядке возрастания числа столбцов, если не возвращается SQL_GD_ANY_ORDER.
SQL_GD_ANY_ORDER = SQLGetData можно вызывать для несвязанных столбцов в любом порядке. Обратите внимание, что SQLGetData можно вызывать только для столбцов после последнего привязанного столбца, если SQL_GD_ANY_COLUMN также не возвращается.
SQL_GD_BLOCK = SQLGetData можно вызывать для несвязанного столбца в любой строке в блоке (где размер набора строк превышает 1) данных после размещения в этой строке с помощью SQLSetPos.
SQL_GD_BOUND = SQLGetData можно вызывать для привязанных столбцов в дополнение к несвязанным столбцам. Драйвер не может вернуть это значение, если он также не возвращает SQL_GD_ANY_COLUMN.
SQL_GD_OUTPUT_PARAMS = SQLGetData можно вызывать для возврата значений выходных параметров. Дополнительные сведения см. в разделе Получение выходных параметров с помощью метода SQLGetData.

SQLGetData требуется для возврата данных только из несвязанных столбцов, которые происходят после последнего привязанного столбца, вызываются в порядке увеличения числа столбцов и не находятся в строке в блоке строк.

Если драйвер поддерживает закладки (фиксированной длины или переменной длины), он должен поддерживать вызов SQLGetData в столбце 0. Эта поддержка требуется независимо от того, что драйвер возвращает для вызова SQLGetInfo с SQL_GETDATA_EXTENSIONS InfoType.
SQL_GROUP_BY 2.0 Значение SQLUSMALLINT, указывающее связь между столбцами в предложении GROUP BY и негрегатными столбцами в списке выбора:
SQL_GB_COLLATE = предложение COLLATE можно указать в конце каждого столбца группировки. (ODBC 3.0)
SQL_GB_NOT_SUPPORTED = предложения GROUP BY не поддерживаются. (ODBC 2.0)
SQL_GB_GROUP_BY_EQUALS_SELECT = предложение GROUP BY должно содержать все негрегатированные столбцы в списке выбора. Он не может содержать другие столбцы. Например, SELECT DEPT, MAX(SALARY) FROM EMPLOYEE GROUP BY DEPT. (ODBC 2.0)
SQL_GB_GROUP_BY_CONTAINS_SELECT = предложение GROUP BY должно содержать все негрегрегатные столбцы в списке выбора. Он может содержать столбцы, которые не находятся в списке выбора. Например, SELECT DEPT, MAX(SALARY) FROM EMPLOYEE GROUP BY DEPT, AGE. (ODBC 2.0)
SQL_GB_NO_RELATION = Столбцы в предложении GROUP BY и список выбора не связаны. Значение негруппированных негруппированных столбцов в списке выбора зависит от источника данных. Например, SELECT DEPT, SALARY FROM EMPLOYEE GROUP BY DEPT, AGE. (ODBC 2.0)

Драйвер уровня входа SQL-92 всегда возвращает параметр SQL_GB_GROUP_BY_EQUALS_SELECT по мере поддержки. Полноуровневый драйвер SQL-92 всегда возвращает параметр SQL_GB_COLLATE по мере поддержки. Если ни один из вариантов не поддерживается, предложение GROUP BY не поддерживается источником данных.
SQL_IDENTIFIER_CASE 1.0 Значение SQLUSMALLINT следующим образом:
SQL_IC_UPPER = идентификаторы в SQL не учитывает регистр и хранятся в верхнем регистре в системном каталоге.
SQL_IC_LOWER = идентификаторы в SQL не учитывает регистр и хранятся в нижнем регистре в системном каталоге.
SQL_IC_SENSITIVE = идентификаторы в SQL чувствительны к регистру и хранятся в смешанном регистре в системном каталоге.
SQL_IC_MIXED = идентификаторы в SQL не учитывает регистр и хранятся в смешанном регистре в системном каталоге.

Так как идентификаторы в SQL-92 никогда не учитывает регистр, драйвер, соответствующий строго SQL-92 (любому уровню), никогда не будет возвращать параметр SQL_IC_SENSITIVE как поддерживаемый.
SQL_IDENTIFIER_QUOTE_CHAR 1.0 Символьная строка, используемая в качестве начального и конечного разделителя идентификатора с кавычками (разделителями) в инструкциях SQL. (Идентификаторы, передаваемые в качестве аргументов функциям ODBC, не должны быть кавычек.) Если источник данных не поддерживает кавычки идентификаторов, возвращается пустое значение.

Эта символьная строка также может использоваться для аргументов функции каталога, если атрибут подключения SQL_ATTR_METADATA_ID имеет значение SQL_TRUE.

Так как символ кавычек идентификатора в SQL-92 является двойным кавычки (), драйвер, соответствующий строго SQL-92, всегда возвращает двойный кавычки.
SQL_INDEX_KEYWORDS 3.0 Битовая маска SQLUINTEGER, перечисляющая ключевые слова в инструкции CREATE INDEX, поддерживаемой драйвером:
SQL_IK_NONE = ни один из ключевых слов не поддерживается.
SQL_IK_ASC = ключевое слово ASC поддерживается.
SQL_IK_DESC = ключевое слово DESC поддерживается.
SQL_IK_ALL = поддерживаются все ключевые слова.

Чтобы узнать, поддерживается ли инструкция CREATE INDEX, приложение вызывает SQLGetInfo с типом сведений SQL_DLL_INDEX.
SQL_INFO_SCHEMA_VIEWS 3.0 Битовая маска SQLUINTEGER, перечисляющая представления в INFORMATION_SCHEMA, поддерживаемых драйвером. Представления и содержимое INFORMATION_SCHEMA определяются в SQL-92.

Уровень соответствия SQL-92 или FIPS, на котором эта функция должна поддерживаться, отображается в скобках рядом с каждой битовой маской.

Для определения поддерживаемых представлений используются следующие битовые маски:
SQL_ISV_ASSERTIONS = определяет утверждения каталога, принадлежащие заданному пользователю. (Полный уровень)
SQL_ISV_CHARACTER_SETS = определяет наборы символов каталога, к которым можно получить доступ заданному пользователю. (Промежуточный уровень)
SQL_ISV_CHECK_CONSTRAINTS = определяет ограничения CHECK, принадлежащие заданному пользователю. (Промежуточный уровень)
SQL_ISV_COLLATIONS = определяет параметры сортировки символов для каталога, к которому может получить доступ заданный пользователь. (Полный уровень)
SQL_ISV_COLUMN_DOMAIN_USAGE = определяет столбцы каталога, зависящие от доменов, определенных в каталоге, и принадлежат заданному пользователю. (Промежуточный уровень)
SQL_ISV_COLUMN_PRIVILEGES = определяет привилегии для столбцов постоянных таблиц, доступных или предоставленных заданным пользователем. (Переходный уровень FIPS)
SQL_ISV_COLUMNS = определяет столбцы постоянных таблиц, к которым может получить доступ заданный пользователь. (Переходный уровень FIPS)
SQL_ISV_CONSTRAINT_COLUMN_USAGE = аналогично представлению CONSTRAINT_TABLE_USAGE столбцы определяются для различных ограничений, принадлежащих заданному пользователю. (Промежуточный уровень)
SQL_ISV_CONSTRAINT_TABLE_USAGE = определяет таблицы, используемые ограничениями (ссылочные, уникальные и утверждения) и принадлежат заданному пользователю. (Промежуточный уровень)
SQL_ISV_DOMAIN_CONSTRAINTS = определяет ограничения домена (домены в каталоге), к которым может получить доступ заданный пользователь. (Промежуточный уровень)
SQL_ISV_DOMAINS = определяет домены, определенные в каталоге, к которым может получить доступ пользователь. (Промежуточный уровень)
SQL_ISV_KEY_COLUMN_USAGE = определяет столбцы, определенные в каталоге, которые ограничены ключами заданного пользователя. (Промежуточный уровень)
SQL_ISV_REFERENTIAL_CONSTRAINTS = определяет ссылочных ограничений, принадлежащих заданному пользователю. (Промежуточный уровень)
SQL_ISV_SCHEMATA = определяет схемы, принадлежащие заданному пользователю. (Промежуточный уровень)
SQL_ISV_SQL_LANGUAGES = определяет уровни соответствия SQL, параметры и диалекты, поддерживаемые реализацией SQL. (Промежуточный уровень)
SQL_ISV_TABLE_CONSTRAINTS = определяет ограничения таблицы, принадлежащие заданному пользователю. (Промежуточный уровень)
SQL_ISV_TABLE_PRIVILEGES = определяет привилегии для постоянных таблиц, доступных или предоставленных заданным пользователем. (Переходный уровень FIPS)
SQL_ISV_TABLES = определяет постоянные таблицы, определенные в каталоге, к которым может получить доступ заданный пользователь. (Переходный уровень FIPS)
SQL_ISV_TRANSLATIONS = определяет переводы символов для каталога, доступ к которому может получить заданный пользователь. (Полный уровень)
SQL_ISV_USAGE_PRIVILEGES = определяет привилегии USAGE для объектов каталога, доступных или принадлежащих заданному пользователю. (Переходный уровень FIPS)
SQL_ISV_VIEW_COLUMN_USAGE = определяет столбцы, от которых зависят представления каталога, принадлежащие заданному пользователю. (Промежуточный уровень)
SQL_ISV_VIEW_TABLE_USAGE = определяет таблицы, в которых зависят представления каталога, принадлежащие заданному пользователю. (Промежуточный уровень)
SQL_ISV_VIEWS = определяет просматриваемые таблицы, определенные в этом каталоге, к которым можно получить доступ заданному пользователю. (Переходный уровень FIPS)
SQL_INSERT_STATEMENT 3.0 Битовая маска SQLUINTEGER, указывающая поддержку инструкций INSERT :
SQL_IS_INSERT_LITERALS
SQL_IS_INSERT_SEARCHED
SQL_IS_SELECT_INTO

Драйвер уровня входа SQL-92 всегда возвращает все эти параметры в соответствии с поддерживаемыми.
SQL_INTEGRITY 1.0 Символьная строка: "Y", если источник данных поддерживает средство улучшения целостности; "N", если это не так.

Этот InfoType был переименован для ODBC 3.0 из SQL_ODBC_SQL_OPT_IEF InfoType ODBC 2.0.
SQL_KEYSET_CURSOR_ATTRIBUTES1 3.0 Битовая маска SQLUINTEGER, описывающая атрибуты курсора набора ключей, поддерживаемого драйвером. Эта битовая маска содержит первое подмножество атрибутов; Для второго подмножества см. SQL_KEYSET_CURSOR_ATTRIBUTES2.

Для определения поддерживаемых атрибутов используются следующие битовые маски:
SQL_CA1_NEXT
SQL_CA1_ABSOLUTE
SQL_CA1_RELATIVE
SQL_CA1_BOOKMARK
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

Описание этих битовых массивов см. в SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (и замените "курсор на основе ключей" на "динамический курсор" в описаниях).

Драйвер, соответствующий промежуточному уровню SQL-92, обычно возвращает параметры SQL_CA1_NEXT, SQL_CA1_ABSOLUTE и SQL_CA1_RELATIVE, так как драйвер поддерживает прокручиваемые курсоры через внедренную инструкцию FETCH SQL. Поскольку это не напрямую определяет базовую поддержку SQL, но прокручиваемые курсоры могут не поддерживаться, даже для драйвера, соответствующего промежуточному уровню SQL-92.
SQL_KEYSET_CURSOR_ATTRIBUTES2 3.0 Битовая маска SQLUINTEGER, описывающая атрибуты курсора набора ключей, поддерживаемого драйвером. Эта битовая маска содержит второе подмножество атрибутов; для первого подмножества см. SQL_KEYSET_CURSOR_ATTRIBUTES1.

Для определения поддерживаемых атрибутов используются следующие битовые маски:
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

Описание этих битовых массивов см. в SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (и замените "курсор на основе ключей" на "динамический курсор" в описаниях).
SQL_KEYWORDS 2.0 Символьная строка, содержащая разделенный запятыми список всех ключевых слов, относящихся к источнику данных. Этот список не содержит ключевых слов, относящихся к ODBC или ключевым словам, используемым источником данных и ODBC. Этот список представляет все зарезервированные ключевые слова; Приложения взаимодействия не должны использовать эти слова в именах объектов.

Список ключевых слов ODBC см . в разделе "Зарезервированные ключевые слова" в приложении C: грамматика SQL. Значение #define SQL_ODBC_KEYWORDS содержит разделенный запятыми список ключевых слов ODBC.
SQL_LIKE_ESCAPE_CLAUSE 2.0 Строка символа: "Y", если источник данных поддерживает escape-символ для символа процента (%) и символа подчеркивания (_) в предикате LIKE , а драйвер поддерживает синтаксис ODBC для определения escape-символа ПРЕДИКАТА LIKE ; "N" в противном случае.
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 3.0 Значение SQLUINTEGER, указывающее максимальное количество активных параллельных инструкций в асинхронном режиме, которое драйвер может поддерживать в заданном соединении. Если определенное ограничение отсутствует или ограничение неизвестно, это значение равно нулю.
SQL_MAX_BINARY_LITERAL_LEN 2.0 Значение SQLUINTEGER, указывающее максимальную длину (число шестнадцатеричных символов, за исключением префикса литерала и суффикса, возвращаемого SQLGetTypeInfo) двоичного литерала в инструкции SQL. Например, двоичный литерал 0xFFAA имеет длину 4. Если максимальная длина отсутствует или длина неизвестна, это значение равно нулю.
SQL_MAX_CATALOG_NAME_LEN 1.0 Значение SQLUSMALLINT, указывающее максимальную длину имени каталога в источнике данных. Если максимальная длина отсутствует или длина неизвестна, это значение равно нулю.

Полноуровневый драйвер FIPS возвращает по крайней мере 128.

Этот InfoType был переименован для ODBC 3.0 из SQL_MAX_QUALIFIER_NAME_LEN ODBC 2.0 InfoType .
SQL_MAX_CHAR_LITERAL_LEN 2.0 Значение SQLUINTEGER, указывающее максимальную длину (число символов, за исключением префикса литерала и суффикса, возвращаемого SQLGetTypeInfo) символьного литерала в инструкции SQL. Если максимальная длина отсутствует или длина неизвестна, это значение равно нулю.
SQL_MAX_COLUMN_NAME_LEN 1.0 Значение SQLUSMALLINT, указывающее максимальную длину имени столбца в источнике данных. Если максимальная длина отсутствует или длина неизвестна, это значение равно нулю.

Драйвер уровня записи FIPS возвращает по крайней мере 18. Драйвер уровня FIPS, соответствующий промежуточному уровню, возвращает по крайней мере 128.
SQL_MAX_COLUMNS_IN_GROUP_BY 2.0 Значение SQLUSMALLINT, указывающее максимальное число столбцов, разрешенных в предложении GROUP BY . Если указанное ограничение отсутствует или ограничение неизвестно, это значение равно нулю.

Драйвер уровня входа FIPS возвращает не менее 6. Драйвер уровня FIPS, соответствующий промежуточному уровню, возвращает по крайней мере 15.
SQL_MAX_COLUMNS_IN_INDEX 2.0 Значение SQLUSMALLINT, указывающее максимальное число столбцов, разрешенных в индексе. Если указанное ограничение отсутствует или ограничение неизвестно, это значение равно нулю.
SQL_MAX_COLUMNS_IN_ORDER_BY 2.0 Значение SQLUSMALLINT, указывающее максимальное количество столбцов, разрешенных в предложении ORDER BY . Если указанное ограничение отсутствует или ограничение неизвестно, это значение равно нулю.

Драйвер уровня входа FIPS возвращает не менее 6. Драйвер уровня FIPS, соответствующий промежуточному уровню, возвращает по крайней мере 15.
SQL_MAX_COLUMNS_IN_SELECT 2.0 Значение SQLUSMALLINT, указывающее максимальное количество столбцов, разрешенных в списке выбора. Если указанное ограничение отсутствует или ограничение неизвестно, это значение равно нулю.

Драйвер уровня входа FIPS возвращает по крайней мере 100. Драйвер уровня FIPS, соответствующий промежуточному уровню, возвращает по крайней мере 250.
SQL_MAX_COLUMNS_IN_TABLE 2.0 Значение SQLUSMALLINT, указывающее максимальное количество столбцов, разрешенных в таблице. Если указанное ограничение отсутствует или ограничение неизвестно, это значение равно нулю.

Драйвер уровня входа FIPS возвращает по крайней мере 100. Драйвер уровня FIPS, соответствующий промежуточному уровню, возвращает по крайней мере 250.
SQL_MAX_CONCURRENT_ACTIVITIES 1.0 Значение SQLUSMALLINT, указывающее максимальное количество активных инструкций, которые драйвер может поддерживать для подключения. Оператор определяется как активный, если он имеет результаты, ожидающие результатов, с термином "результаты" означает строки из операции SELECT или строк, затронутых операцией INSERT, UPDATE или DELETE (например, число строк), или если она находится в состоянии NEED_DATA. Это значение может отражать ограничение, введенное драйвером или источником данных. Если указанное ограничение отсутствует или ограничение неизвестно, это значение равно нулю.

Этот InfoType был переименован для ODBC 3.0 из SQL_ACTIVE_STATEMENTS InfoType ODBC 2.0.
SQL_MAX_CURSOR_NAME_LEN 1.0 Значение SQLUSMALLINT, указывающее максимальную длину имени курсора в источнике данных. Если максимальная длина отсутствует или длина неизвестна, это значение равно нулю.

Драйвер уровня записи FIPS возвращает по крайней мере 18. Драйвер уровня FIPS, соответствующий промежуточному уровню, возвращает по крайней мере 128.
SQL_MAX_DRIVER_CONNECTIONS 1.0 Значение SQLUSMALLINT, указывающее максимальное количество активных подключений, которые драйвер может поддерживать для среды. Это значение может отражать ограничение, введенное драйвером или источником данных. Если указанное ограничение отсутствует или ограничение неизвестно, это значение равно нулю.

Этот InfoType был переименован для ODBC 3.0 из SQL_ACTIVE_CONNECTIONS ODBC 2.0 InfoType .
SQL_MAX_IDENTIFIER_LEN 3.0 SQLUSMALLINT, указывающий максимальный размер символов, поддерживаемых источником данных для определяемых пользователем имен.

Драйвер уровня записи FIPS возвращает по крайней мере 18. Драйвер уровня FIPS, соответствующий промежуточному уровню, возвращает по крайней мере 128.
SQL_MAX_INDEX_SIZE 2.0 Значение SQLUINTEGER, указывающее максимальное количество байтов, разрешенных в объединенных полях индекса. Если указанное ограничение отсутствует или ограничение неизвестно, это значение равно нулю.
SQL_MAX_PROCEDURE_NAME_LEN 1.0 Значение SQLUSMALLINT, указывающее максимальную длину имени процедуры в источнике данных. Если максимальная длина отсутствует или длина неизвестна, это значение равно нулю.
SQL_MAX_ROW_SIZE 2.0 Значение SQLUINTEGER, указывающее максимальную длину одной строки в таблице. Если указанное ограничение отсутствует или ограничение неизвестно, это значение равно нулю.

Драйвер уровня входа FIPS возвращает по крайней мере 2000. Драйвер уровня FIPS, соответствующий уровню, возвращает не менее 8 000.
SQL_MAX_ROW_SIZE_INCLUDES_LONG 3.0 Символьная строка: "Y", если максимальный размер строки, возвращаемый для типа сведений SQL_MAX_ROW_SIZE, включает длину всех столбцов SQL_LONGVARCHAR и SQL_LONGVARBINARY в строке; "N" в противном случае.
SQL_MAX_SCHEMA_NAME_LEN 1.0 Значение SQLUSMALLINT, указывающее максимальную длину имени схемы в источнике данных. Если максимальная длина отсутствует или длина неизвестна, это значение равно нулю.

Драйвер уровня записи FIPS возвращает по крайней мере 18. Драйвер уровня FIPS, соответствующий промежуточному уровню, возвращает по крайней мере 128.

Этот InfoType был переименован для ODBC 3.0 из SQL_MAX_OWNER_NAME_LEN ODBC 2.0 InfoType .
SQL_MAX_STATEMENT_LEN 2.0 Значение SQLUINTEGER, указывающее максимальную длину (число символов, включая пробел) инструкции SQL. Если максимальная длина отсутствует или длина неизвестна, это значение равно нулю.
SQL_MAX_TABLE_NAME_LEN 1.0 Значение SQLUSMALLINT, указывающее максимальную длину имени таблицы в источнике данных. Если максимальная длина отсутствует или длина неизвестна, это значение равно нулю.

Драйвер уровня записи FIPS возвращает по крайней мере 18. Драйвер уровня FIPS, соответствующий промежуточному уровню, возвращает по крайней мере 128.
SQL_MAX_TABLES_IN_SELECT 2.0 Значение SQLUSMALLINT, указывающее максимальное количество таблиц, разрешенных в предложении FROM инструкции SELECT . Если указанное ограничение отсутствует или ограничение неизвестно, это значение равно нулю.

Драйвер уровня входа FIPS возвращает не менее 15. Драйвер уровня FIPS, соответствующий промежуточному уровню, возвращает по крайней мере 50.
SQL_MAX_USER_NAME_LEN 2.0 Значение SQLUSMALLINT, указывающее максимальную длину имени пользователя в источнике данных. Если максимальная длина отсутствует или длина неизвестна, это значение равно нулю.
SQL_MULT_RESULT_SETS 1.0 Символьная строка: "Y", если источник данных поддерживает несколько результирующих наборов, "N", если это не так.

Дополнительные сведения о нескольких результирующих наборах см. в разделе "Несколько результатов".
SQL_MULTIPLE_ACTIVE_TXN 1.0 Символьная строка: "Y", если драйвер поддерживает несколько активных транзакций одновременно, "N", если только одна транзакция может быть активной в любое время.

Данные, возвращаемые для этого типа информации, не применяются в случае распределенных транзакций.
SQL_NEED_LONG_DATA_LEN 2.0 Символьная строка: "Y", если источник данных нуждается в длине длинного значения данных (тип данных SQL_LONGVARCHAR, SQL_LONGVARBINARY или длинный тип данных для конкретного источника данных) перед отправкой этого значения в источник данных , если он не имеет значения. Дополнительные сведения см. в разделе "Функция SQLBindParameter" и функция SQLSetPos.
SQL_NON_NULLABLE_COLUMNS 1.0 Значение SQLUSMALLINT, указывающее, поддерживает ли источник данных NOT NULL в столбцах:
SQL_NNC_NULL = все столбцы должны иметь значение NULL.
SQL_NNC_NON_NULL = столбцы не могут иметь значение NULL. (Источник данных поддерживает Ограничение столбца NOT NULL в инструкциях CREATE TABLE .)

Драйвер уровня входа SQL-92 возвращает SQL_NNC_NON_NULL.
SQL_NULL_COLLATION 2.0 Значение SQLUSMALLINT, указывающее, где NULLs сортируются в результирующем наборе:
SQL_NC_END = NULLs сортируются в конце результирующий набор независимо от ключевых слов ASC или DESC.
SQL_NC_HIGH = NULLs сортируются в высоком конце результирующий набор в зависимости от ключевых слов ASC или DESC.
SQL_NC_LOW = NULLs сортируются в нижнем конце результирующий набор в зависимости от ключевых слов ASC или DESC.
SQL_NC_START = NULLs сортируются в начале результирующий набор независимо от ключевых слов ASC или DESC.
SQL_NUMERIC_FUNCTIONS 1.0 Примечание. Тип информации появился в ODBC 1.0; каждая битовая маска помечена версией, в которой она была введена.

Битовая маска SQLUINTEGER, перечисляющая скалярные числовые функции, поддерживаемые драйвером и связанным источником данных.

Следующие битовые маски используются для определения поддерживаемых числовых функций:
SQL_FN_NUM_ABS (ODBC 1.0)
SQL_FN_NUM_ACOS (ODBC 1.0)
SQL_FN_NUM_ASIN (ODBC 1.0)
SQL_FN_NUM_ATAN (ODBC 1.0)
SQL_FN_NUM_ATAN2 (ODBC 1.0)
SQL_FN_NUM_CEILING (ODBC 1.0)
SQL_FN_NUM_COS (ODBC 1.0)
SQL_FN_NUM_COT (ODBC 1.0)
SQL_FN_NUM_DEGREES (ODBC 2.0)
SQL_FN_NUM_EXP (ODBC 1.0)
SQL_FN_NUM_FLOOR (ODBC 1.0)
SQL_FN_NUM_LOG (ODBC 1.0)
SQL_FN_NUM_LOG10 (ODBC 2.0)
SQL_FN_NUM_MOD (ODBC 1.0)
SQL_FN_NUM_PI (ODBC 1.0)
SQL_FN_NUM_POWER (ODBC 2.0)
SQL_FN_NUM_RADIANS (ODBC 2.0)
SQL_FN_NUM_RAND (ODBC 1.0)
SQL_FN_NUM_ROUND (ODBC 2.0)
SQL_FN_NUM_SIGN (ODBC 1.0)
SQL_FN_NUM_SIN (ODBC 1.0)
SQL_FN_NUM_SQRT (ODBC 1.0)
SQL_FN_NUM_TAN (ODBC 1.0)
SQL_FN_NUM_TRUNCATE (ODBC 2.0)
SQL_ODBC_INTERFACE_CONFORMANCE 3.0 Значение SQLUINTEGER, указывающее уровень интерфейса ODBC 3*.x*, который соответствует драйверу.

SQL_OIC_CORE. Минимальный уровень соответствия всем драйверам ODBC. Этот уровень включает основные элементы интерфейса, такие как функции подключения, функции для подготовки и выполнения инструкции SQL, базовые функции метаданных результирующих наборов, основные функции каталога и т. д.
SQL_OIC_LEVEL1: уровень, включая основные функции уровня соответствия стандартам, а также прокручиваемые курсоры, закладки, размещенные обновления и удаления и т. д.
SQL_OIC_LEVEL2: уровень, включая функциональность уровня 1, а также дополнительные функции, такие как конфиденциальные курсоры; обновление, удаление и обновление по закладкам; поддержка хранимых процедур; функции каталога для первичных и внешних ключей; поддержка нескольких каталогов; и т. д.

Дополнительные сведения см. в разделе "Уровни соответствия интерфейса".
SQL_ODBC_VER 1.0 Символьная строка с версией ODBC, к которой соответствует диспетчер драйверов. Версия формы ##.#.0000, где первые две цифры являются основной версией, а следующие две цифры являются дополнительной версией. Это реализуется только в диспетчере драйверов.
SQL_OJ_CAPABILITIES 2,01 Битовая маска SQLUINTEGER, перечисляющая типы внешних соединений, поддерживаемых драйвером и источником данных. Для определения поддерживаемых типов используются следующие битовые маски:
SQL_OJ_LEFT = поддерживаются левые внешние соединения.
SQL_OJ_RIGHT = поддерживаются правые внешние соединения.
SQL_OJ_FULL = поддерживаются полные внешние соединения.
SQL_OJ_NESTED = поддерживаются вложенные внешние соединения.
SQL_OJ_NOT_ORDERED = Имена столбцов в предложении ON внешнего соединения не должны совпадать с соответствующими именами таблиц в предложении OUTER JOIN .
SQL_OJ_INNER = Внутренняя таблица (левая таблица в левом внешнем соединении или левая таблица в правом внешнем соединении) также может использоваться во внутреннем соединении. Это не относится к полным внешним соединениям, которые не имеют внутренней таблицы.
SQL_OJ_ALL_COMPARISON_OPS = оператор сравнения в предложении ON может быть любым из операторов сравнения ODBC. Если этот бит не задан, то в внешних соединениях можно использовать только оператор сравнения equals (=).

Если ни один из этих параметров не возвращается как поддерживаемый, предложение внешнего соединения не поддерживается.

Сведения о поддержке операторов реляционного соединения в инструкции SELECT, как определено SQL-92, см. в SQL_SQL92_RELATIONAL_JOIN_OPERATORS.
SQL_ORDER_BY_COLUMNS_IN_SELECT 2.0 Символьная строка: "Y", если столбцы в предложении ORDER BY должны находиться в списке выбора; в противном случае — "N".
SQL_PARAM_ARRAY_ROW_COUNTS 3.0 SQLUINTEGER, перечисляющий свойства драйвера относительно доступности счетчиков строк в параметризованном выполнении. Имеет следующие значения:
SQL_PARC_BATCH = количество отдельных строк доступно для каждого набора параметров. Это концептуально эквивалентно драйверу, создающего пакет инструкций SQL, по одному для каждого набора параметров в массиве. Дополнительные сведения об ошибке можно получить с помощью поля дескриптора SQL_PARAM_STATUS_PTR.
SQL_PARC_NO_BATCH = доступно только одно число строк, которое является совокупным числом строк, результатом выполнения инструкции для всего массива параметров. Это концептуально эквивалентно обработке инструкции вместе с полным массивом параметров как одну атомарную единицу. Ошибки обрабатываются так же, как и при выполнении одной инструкции.
SQL_PARAM_ARRAY_SELECTS 3.0 SQLUINTEGER, перечисляющий свойства драйвера относительно доступности результирующих наборов в параметризованном выполнении. Имеет следующие значения:
SQL_PAS_BATCH = существует один результирующий набор, доступный для каждого набора параметров. Это концептуально эквивалентно драйверу, создающего пакет инструкций SQL, по одному для каждого набора параметров в массиве.
SQL_PAS_NO_BATCH = существует только один результирующий набор, представляющий совокупный результирующий набор, полученный из выполнения инструкции для полного массива параметров. Это концептуально эквивалентно обработке инструкции вместе с полным массивом параметров как одну атомарную единицу.
SQL_PAS_NO_SELECT = драйвер не позволяет выполнять инструкцию создания результирующих наборов с массивом параметров.
SQL_POS_OPERATIONS 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_PROCEDURE_TERM 1.0 Символьная строка с именем поставщика источника данных для процедуры; Например, "база данных", "хранимая процедура", "процедура", "пакет" или "сохраненный запрос".
SQL_PROCEDURES 1.0 Символьная строка: "Y", если источник данных поддерживает процедуры, и драйвер поддерживает синтаксис вызова процедуры ODBC; "N" в противном случае.
SQL_QUOTED_IDENTIFIER_CASE 2.0 Значение SQLUSMALLINT следующим образом:
SQL_IC_UPPER = кавычки идентификаторов в SQL не учитывает регистр и хранятся в верхнем регистре в системном каталоге.
SQL_IC_LOWER = кавычки идентификаторов в SQL не учитывает регистр и хранятся в нижнем регистре в системном каталоге.
SQL_IC_SENSITIVE = кавычки идентификаторов в SQL чувствительны к регистру и хранятся в смешанном регистре в системном каталоге. (В базе данных, совместимой с SQL-92, в кавычки идентификаторы всегда учитывается регистр.)
SQL_IC_MIXED = кавычки идентификаторов в SQL не учитывает регистр и хранятся в смешанном регистре в системном каталоге.

Драйвер уровня входа SQL-92 всегда возвращает SQL_IC_SENSITIVE.
SQL_ROW_UPDATES 1.0 Символьная строка: "Y", если набор ключей или смешанный курсор сохраняет версии строк или значения для всех извлекаемых строк и поэтому может обнаружить любые обновления, внесенные в строку любым пользователем после последнего получения строки. (Это относится только к обновлениям, а не к удалениям или вставкам.) Драйвер может вернуть флаг SQL_ROW_UPDATED в массив состояния строки при вызове SQLFetchScroll . В противном случае — "N".
SQL_SCHEMA_TERM 1.0 Символьная строка с именем поставщика источника данных для схемы; Например, "владелец", "Идентификатор авторизации" или "Схема".

Строка символа может быть возвращена в верхнем, нижнем или смешанном регистре.

Драйвер уровня входа SQL-92 всегда возвращает "схема".

Этот InfoType был переименован для ODBC 3.0 из SQL_OWNER_TERM ODBC 2.0 InfoType .
SQL_SCHEMA_USAGE 2.0 Битовая маска SQLUINTEGER, перечисляющая инструкции, в которых можно использовать схемы:
SQL_SU_DML_STATEMENTS = схемы поддерживаются во всех инструкциях языка обработки данных: SELECT, INSERT, UPDATE, DELETE и, если это поддерживается, SELECT FOR UPDATE и размещенных инструкций обновления и удаления.
SQL_SU_PROCEDURE_INVOCATION = схемы поддерживаются в инструкции вызова процедуры ODBC.
SQL_SU_TABLE_DEFINITION = схемы поддерживаются во всех инструкциях определения таблицы: CREATE TABLE, CREATE VIEW, ALTER TABLE, DROP TABLE и DROP VIEW.
SQL_SU_INDEX_DEFINITION = схемы поддерживаются во всех инструкциях определения индекса: CREATE INDEX и DROP INDEX.
SQL_SU_PRIVILEGE_DEFINITION = схемы поддерживаются во всех инструкциях определения привилегий: GRANT и REVOKE.

Драйвер уровня входа SQL-92 всегда возвращает параметры SQL_SU_DML_STATEMENTS, SQL_SU_TABLE_DEFINITION и SQL_SU_PRIVILEGE_DEFINITION, как поддерживается.

Этот InfoType был переименован для ODBC 3.0 из SQL_OWNER_USAGE InfoType ODBC 2.0.
SQL_SCROLL_OPTIONS 1.0 Примечание. Тип информации появился в ODBC 1.0; каждая битовая маска помечена версией, в которой она была введена.

Битовая маска SQLUINTEGER, перечисляющая параметры прокрутки, поддерживаемые для прокручиваемых курсоров.

Для определения поддерживаемых параметров используются следующие битовые маски:
SQL_SO_FORWARD_ONLY = курсор прокручивается только вперед. (ODBC 1.0)
SQL_SO_STATIC = данные в результирующем наборе являются статическими. (ODBC 2.0)
SQL_SO_KEYSET_DRIVEN = драйвер сохраняет и использует ключи для каждой строки в результирующем наборе. (ODBC 1.0)
SQL_SO_DYNAMIC = драйвер сохраняет ключи для каждой строки в наборе строк (размер набора ключей совпадает с размером набора строк). (ODBC 1.0)
SQL_SO_MIXED = драйвер сохраняет ключи для каждой строки в наборе ключей, а размер набора ключей больше размера набора строк. Курсор управляется набором ключей внутри набора ключей и динамическим вне набора ключей. (ODBC 1.0)

Сведения о прокручиваемых курсорах см. в разделе "Прокручиваемые курсоры".
SQL_SEARCH_PATTERN_ESCAPE 1.0 Строка символов, указывающая, что драйвер поддерживает в качестве escape-символа, который позволяет использовать символ подчеркивания совпадения шаблонов (_) и знак процента (%), как допустимые символы в шаблонах поиска. Этот escape-символ применяется только к аргументам функции каталога, поддерживающим строки поиска. Если эта строка пуста, драйвер не поддерживает escape-символ поиска.

Так как этот тип сведений не указывает на общую поддержку escape-символа в предикате LIKE , SQL-92 не включает требования к этой строке символов.

Этот InfoType ограничен функциями каталога. Описание использования escape-символа в строках шаблонов поиска см. в разделе "Аргументы значения шаблона".
SQL_SERVER_NAME 1.0 Символьная строка с фактическим именем сервера для источника данных; полезно при использовании имени источника данных во время SQLConnect, SQLDriverConnect и SQLBrowseConnect.
SQL_SPECIAL_CHARACTERS 2.0 Строка символов, содержащая все специальные символы (т. е. все символы, кроме z, A–Z, 0–9 и подчеркивания), которые можно использовать в имени идентификатора, например имя таблицы, имя столбца или имя индекса в источнике данных. Например, "#$^". Если идентификатор содержит один или несколько этих символов, идентификатор должен быть идентификатором с разделителями.
SQL_SQL_CONFORMANCE 3.0 Значение SQLUINTEGER, указывающее уровень SQL-92, поддерживаемый драйвером:
SQL_SC_SQL92_ENTRY = соответствие ТРЕБОВАНИЯМ SQL-92 уровня входа.
SQL_SC_FIPS127_2_TRANSITIONAL = соответствие FIPS 127-2 переходному уровню.
SQL_SC_SQL92_FULL = полный уровень СООТВЕТСТВИЯ SQL-92.
SQL_SC_ SQL92_INTERMEDIATE = соответствие SQL-92 промежуточного уровня.
SQL_SQL92_DATETIME_FUNCTIONS 3.0 Битовая маска SQLUINTEGER, перечисляющая скалярные функции datetime, поддерживаемые драйвером и связанным источником данных, как определено в SQL-92.

Следующие битовые маски используются для определения поддерживаемых функций datetime:
SQL_SDF_CURRENT_DATE
SQL_SDF_CURRENT_TIME
SQL_SDF_CURRENT_TIMESTAMP
SQL_SQL92_FOREIGN_KEY_DELETE_RULE 3.0 Битовая маска SQLUINTEGER, перечисляющая правила, поддерживаемые для внешнего ключа в инструкции DELETE, как определено в SQL-92.

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

Драйвер, соответствующий переходному уровню FIPS, всегда возвращает все эти параметры в соответствии с поддерживаемыми.
SQL_SQL92_FOREIGN_KEY_UPDATE_RULE 3.0 Битовая маска SQLUINTEGER, перечисляющая правила, поддерживаемые внешним ключом в инструкции UPDATE , как определено в SQL-92.

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

Полноуровневый драйвер SQL-92 всегда возвращает все эти параметры как поддерживаемые.
SQL_SQL92_GRANT 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения, поддерживаемые в инструкции GRANT, как определено в SQL-92.

Уровень соответствия SQL-92 или FIPS, на котором эта функция должна поддерживаться, отображается в скобках рядом с каждой битовой маской.

Для определения предложений, поддерживаемых источником данных, используются следующие битовые маски:
SQL_SG_DELETE_TABLE (уровень входа)
SQL_SG_INSERT_COLUMN (промежуточный уровень)
SQL_SG_INSERT_TABLE (уровень входа)
SQL_SG_REFERENCES_TABLE (уровень входа)
SQL_SG_REFERENCES_COLUMN (уровень входа)
SQL_SG_SELECT_TABLE (уровень входа)
SQL_SG_UPDATE_COLUMN (уровень входа)
SQL_SG_UPDATE_TABLE (уровень входа)
SQL_SG_USAGE_ON_DOMAIN (переходный уровень FIPS)
SQL_SG_USAGE_ON_CHARACTER_SET (переходный уровень FIPS)
SQL_SG_USAGE_ON_COLLATION (переходный уровень FIPS)
SQL_SG_USAGE_ON_TRANSLATION (переходный уровень FIPS)
SQL_SG_WITH_GRANT_OPTION (уровень входа)
SQL_SQL92_NUMERIC_VALUE_FUNCTIONS 3.0 Битовая маска SQLUINTEGER, перечисляющая скалярные функции числовых значений, поддерживаемые драйвером и соответствующим источником данных, как определено в SQL-92.

Следующие битовые маски используются для определения поддерживаемых числовых функций:
SQL_SNVF_BIT_LENGTH
SQL_SNVF_CHAR_LENGTH
SQL_SNVF_CHARACTER_LENGTH
SQL_SNVF_EXTRACT
SQL_SNVF_OCTET_LENGTH
SQL_SNVF_POSITION
SQL_SQL92_PREDICATES 3.0 Битовая маска SQLUINTEGER, перечисляющая предикаты, поддерживаемые в инструкции SELECT, как определено в SQL-92.

Уровень соответствия SQL-92 или FIPS, на котором эта функция должна поддерживаться, отображается в скобках рядом с каждой битовой маской.

Следующие битовые маски используются для определения параметров, поддерживаемых источником данных:
SQL_SP_BETWEEN (уровень входа)
SQL_SP_COMPARISON (уровень входа)
SQL_SP_EXISTS (уровень входа)
SQL_SP_IN (уровень входа)
SQL_SP_ISNOTNULL (уровень входа)
SQL_SP_ISNULL (уровень входа)
SQL_SP_LIKE (уровень входа)
SQL_SP_MATCH_FULL (полный уровень)
SQL_SP_MATCH_PARTIAL(полный уровень)
SQL_SP_MATCH_UNIQUE_FULL (полный уровень)
SQL_SP_MATCH_UNIQUE_PARTIAL (полный уровень)
SQL_SP_OVERLAPS (переходный уровень FIPS)
SQL_SP_QUANTIFIED_COMPARISON (уровень входа)
SQL_SP_UNIQUE (уровень входа)
SQL_SQL92_RELATIONAL_JOIN_OPERATORS 3.0 Битовая маска SQLUINTEGER, перечисляющая операторы реляционного соединения, поддерживаемые в инструкции SELECT, как определено в SQL-92.

Уровень соответствия SQL-92 или FIPS, на котором эта функция должна поддерживаться, отображается в скобках рядом с каждой битовой маской.

Следующие битовые маски используются для определения параметров, поддерживаемых источником данных:
SQL_SRJO_CORRESPONDING_CLAUSE (промежуточный уровень)
SQL_SRJO_CROSS_JOIN (полный уровень)
SQL_SRJO_EXCEPT_JOIN (промежуточный уровень)
SQL_SRJO_FULL_OUTER_JOIN (промежуточный уровень)
SQL_SRJO_INNER_JOIN (переходный уровень FIPS)
SQL_SRJO_INTERSECT_JOIN (промежуточный уровень)
SQL_SRJO_LEFT_OUTER_JOIN (переходный уровень FIPS)
SQL_SRJO_NATURAL_JOIN (переходный уровень FIPS)
SQL_SRJO_RIGHT_OUTER_JOIN (переходный уровень FIPS)
SQL_SRJO_UNION_JOIN (полный уровень)

SQL_SRJO_INNER_JOIN указывает поддержку синтаксиса INNER JOIN , а не для возможности внутреннего соединения. Поддержка синтаксиса INNER JOIN — FIPS TRANSITIONAL, а поддержка внутренней возможности соединения — ENTRY.
SQL_SQL92_REVOKE 3.0 Битовая маска SQLUINTEGER, перечисляющая предложения, поддерживаемые инструкцией REVOKE, как определено в SQL-92, поддерживаемой источником данных.

Уровень соответствия SQL-92 или FIPS, на котором эта функция должна поддерживаться, отображается в скобках рядом с каждой битовой маской.

Для определения предложений, поддерживаемых источником данных, используются следующие битовые маски:
SQL_SR_CASCADE (переходный уровень FIPS)
SQL_SR_DELETE_TABLE (уровень входа)
SQL_SR_GRANT_OPTION_FOR (промежуточный уровень)
SQL_SR_INSERT_COLUMN (промежуточный уровень)
SQL_SR_INSERT_TABLE (уровень входа)
SQL_SR_REFERENCES_COLUMN (уровень входа)
SQL_SR_REFERENCES_TABLE (уровень входа)
SQL_SR_RESTRICT (переходный уровень FIPS)
SQL_SR_SELECT_TABLE (уровень входа)
SQL_SR_UPDATE_COLUMN (уровень входа)
SQL_SR_UPDATE_TABLE (уровень входа)
SQL_SR_USAGE_ON_DOMAIN (переходный уровень FIPS)
SQL_SR_USAGE_ON_CHARACTER_SET (переходный уровень FIPS)
SQL_SR_USAGE_ON_COLLATION (переходный уровень FIPS)
SQL_SR_USAGE_ON_TRANSLATION (переходный уровень FIPS)
SQL_SQL92_ROW_VALUE_CONSTRUCTOR 3.0 Битовая маска SQLUINTEGER, перечисляющая выражения конструктора строк, поддерживаемые в инструкции SELECT, как определено в SQL-92. Следующие битовые маски используются для определения параметров, поддерживаемых источником данных:
SQL_SRVC_VALUE_EXPRESSION
SQL_SRVC_NULL
SQL_SRVC_DEFAULT
SQL_SRVC_ROW_SUBQUERY
SQL_SQL92_STRING_FUNCTIONS 3.0 Битовая маска SQLUINTEGER, перечисляющая скалярные функции строк, поддерживаемые драйвером и связанным источником данных, как определено в SQL-92.

Для определения поддерживаемых строковых функций используются следующие битовые маски:
SQL_SSF_CONVERT
SQL_SSF_LOWERSQL_SSF_UPPER
SQL_SSF_SUBSTRING
SQL_SSF_TRANSLATE
SQL_SSF_TRIM_BOTH
SQL_SSF_TRIM_LEADING
SQL_SSF_TRIM_TRAILING
SQL_SQL92_VALUE_EXPRESSIONS 3.0 Битовая маска SQLUINTEGER, перечисляющая поддерживаемые выражения значений, как определено в SQL-92.

Уровень соответствия SQL-92 или FIPS, на котором эта функция должна поддерживаться, отображается в скобках рядом с каждой битовой маской.

Следующие битовые маски используются для определения параметров, поддерживаемых источником данных:
SQL_SVE_CASE (промежуточный уровень)
SQL_SVE_CAST (переходный уровень FIPS)
SQL_SVE_COALESCE (промежуточный уровень)
SQL_SVE_NULLIF (промежуточный уровень)
SQL_STANDARD_CLI_CONFORMANCE 3.0 Битовая маска SQLUINTEGER, перечисляющая стандарт или стандарты CLI, к которым соответствует драйвер. Следующие битовые маски используются для определения уровней, с которыми соответствует драйвер:
SQL_SCC_XOPEN_CLI_VERSION1. Драйвер соответствует open Group CLI версии 1.
SQL_SCC_ISO92_CLI: драйвер соответствует интерфейсу командной строки ISO 92.
SQL_STATIC_CURSOR_ATTRIBUTES1 3.0 Битовая маска SQLUINTEGER, описывающая атрибуты статического курсора, поддерживаемого драйвером. Эта битовая маска содержит первое подмножество атрибутов; для второго подмножества см. SQL_STATIC_CURSOR_ATTRIBUTES2.

Для определения поддерживаемых атрибутов используются следующие битовые маски:
SQL_CA1_NEXT
SQL_CA1_ABSOLUTE
SQL_CA1_RELATIVE
SQL_CA1_BOOKMARK
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

Описание этих битовых масок см. в SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (и замените "статический курсор" динамическим курсором в описаниях).

Драйвер, соответствующий промежуточному уровню SQL-92, обычно возвращает параметры SQL_CA1_NEXT, SQL_CA1_ABSOLUTE и SQL_CA1_RELATIVE, так как драйвер поддерживает прокручиваемые курсоры через внедренную инструкцию FETCH SQL. Поскольку это не напрямую определяет базовую поддержку SQL, но прокручиваемые курсоры могут не поддерживаться, даже для драйвера, соответствующего промежуточному уровню SQL-92.
SQL_STATIC_CURSOR_ATTRIBUTES2 3.0 Битовая маска SQLUINTEGER, описывающая атрибуты статического курсора, поддерживаемого драйвером. Эта битовая маска содержит второе подмножество атрибутов; для первого подмножества см. SQL_STATIC_CURSOR_ATTRIBUTES1.

Для определения поддерживаемых атрибутов используются следующие битовые маски:
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

Описание этих битовых машин см. в SQL_DYNAMIC_CURSOR_ATTRIBUTES2 (и замените "статический курсор" динамическим курсором в описаниях).
SQL_STRING_FUNCTIONS 1.0 Примечание. Тип информации появился в ODBC 1.0; каждая битовая маска помечена версией, в которой она была введена.

Битовая маска SQLUINTEGER, перечисляющая скалярные строковые функции, поддерживаемые драйвером и связанным источником данных.

Для определения поддерживаемых строковых функций используются следующие битовые маски:
SQL_FN_STR_ASCII (ODBC 1.0)
SQL_FN_STR_BIT_LENGTH (ODBC 3.0)
SQL_FN_STR_CHAR (ODBC 1.0)
SQL_FN_STR_CHAR_LENGTH (ODBC 3.0)
SQL_FN_STR_CHARACTER_LENGTH (ODBC 3.0)
SQL_FN_STR_CONCAT (ODBC 1.0)
SQL_FN_STR_DIFFERENCE (ODBC 2.0)
SQL_FN_STR_INSERT (ODBC 1.0)
SQL_FN_STR_LCASE (ODBC 1.0)
SQL_FN_STR_LEFT (ODBC 1.0)
SQL_FN_STR_LENGTH (ODBC 1.0)
SQL_FN_STR_LOCATE (ODBC 1.0)
SQL_FN_STR_LTRIM (ODBC 1.0)
SQL_FN_STR_OCTET_LENGTH (ODBC 3.0)
SQL_FN_STR_POSITION (ODBC 3.0)
SQL_FN_STR_REPEAT (ODBC 1.0)
SQL_FN_STR_REPLACE (ODBC 1.0)
SQL_FN_STR_RIGHT (ODBC 1.0)
SQL_FN_STR_RTRIM (ODBC 1.0)
SQL_FN_STR_SOUNDEX (ODBC 2.0)
SQL_FN_STR_SPACE (ODBC 2.0)
SQL_FN_STR_SUBSTRING (ODBC 1.0)
SQL_FN_STR_UCASE (ODBC 1.0)

Если приложение может вызвать скалярную функцию LOCATE с помощью string_exp1, string_exp2 и запуска аргументов, драйвер возвращает SQL_FN_STR_LOCATE битовую маску. Если приложение может вызвать скалярную функцию LOCATE только с аргументами string_exp1 и string_exp2 , драйвер возвращает SQL_FN_STR_LOCATE_2 битовую маску. Драйверы, которые полностью поддерживают скалярную функцию LOCATE , возвращают обе битовые маски.

(Дополнительные сведения см. в разделе Строковые функции в приложении E, "Скалярные функции".)
SQL_SUBQUERIES 2.0 Битовая маска SQLUINTEGER, перечисляющая предикаты, поддерживающие вложенные запросы:
SQL_SQ_CORRELATED_SUBQUERIES
SQL_SQ_COMPARISON
SQL_SQ_EXISTS
SQL_SQ_INSQL_SQ_QUANTIFIED

Битовая маска SQL_SQ_CORRELATED_SUBQUERIES указывает, что все предикаты, поддерживающие вложенные запросы, поддерживают коррелированные вложенные запросы.

Драйвер уровня входа SQL-92 всегда возвращает битовую маску, в которой заданы все эти биты.
SQL_SYSTEM_FUNCTIONS 1.0 Битовая маска SQLUINTEGER, перечисляющая скалярные системные функции, поддерживаемые драйвером и связанным источником данных.

Для определения поддерживаемых системных функций используются следующие битовые маски:
SQL_FN_SYS_DBNAME
SQL_FN_SYS_IFNULL
SQL_FN_SYS_USERNAME
SQL_TABLE_TERM 1.0 Символьная строка с именем поставщика источника данных для таблицы; например, table или file.

Эта строка символа может находиться в верхнем, нижнем или смешанном регистре.

Драйвер уровня входа SQL-92 всегда возвращает "таблица".
SQL_TIMEDATE_ADD_INTERVALS 2.0 Битовая маска SQLUINTEGER, перечисляющая интервалы метки времени, поддерживаемые драйвером и связанным источником данных для скалярной функции TIMESTAMPADD.

Для определения поддерживаемых интервалов используются следующие битовые маски:
SQL_FN_TSI_FRAC_SECOND
SQL_FN_TSI_SECOND
SQL_FN_TSI_MINUTE
SQL_FN_TSI_HOUR
SQL_FN_TSI_DAY
SQL_FN_TSI_WEEK
SQL_FN_TSI_MONTH
SQL_FN_TSI_QUARTER
SQL_FN_TSI_YEAR

Драйвер с переходным уровнем FIPS всегда возвращает битовую маску, в которой заданы все эти биты.
SQL_TIMEDATE_DIFF_INTERVALS 2.0 Битовая маска SQLUINTEGER, перечисляющая интервалы метки времени, поддерживаемые драйвером и связанным источником данных для скалярной функции TIMESTAMPDIFF.

Для определения поддерживаемых интервалов используются следующие битовые маски:
SQL_FN_TSI_FRAC_SECOND
SQL_FN_TSI_SECOND
SQL_FN_TSI_MINUTE
SQL_FN_TSI_HOUR
SQL_FN_TSI_DAY
SQL_FN_TSI_WEEK
SQL_FN_TSI_MONTH
SQL_FN_TSI_QUARTER
SQL_FN_TSI_YEAR

Драйвер с переходным уровнем FIPS всегда возвращает битовую маску, в которой заданы все эти биты.
SQL_TIMEDATE_FUNCTIONS 1.0 Примечание. Тип информации появился в ODBC 1.0; каждая битовая маска помечена версией, в которой она была введена.

Битовая маска SQLUINTEGER, перечисляющая скалярные функции даты и времени, поддерживаемые драйвером и связанным источником данных.

Для определения поддерживаемых функций даты и времени используются следующие битовые маски:
SQL_FN_TD_CURRENT_DATE (ODBC 3.0)
SQL_FN_TD_CURRENT_TIME (ODBC 3.0)
SQL_FN_TD_CURRENT_TIMESTAMP (ODBC 3.0)
SQL_FN_TD_CURDATE (ODBC 1.0)
SQL_FN_TD_CURTIME (ODBC 1.0)
SQL_FN_TD_DAYNAME (ODBC 2.0)
SQL_FN_TD_DAYOFMONTH (ODBC 1.0)
SQL_FN_TD_DAYOFWEEK (ODBC 1.0)
SQL_FN_TD_DAYOFYEAR (ODBC 1.0)
SQL_FN_TD_EXTRACT (ODBC 3.0)
SQL_FN_TD_HOUR (ODBC 1.0)
SQL_FN_TD_MINUTE (ODBC 1.0)
SQL_FN_TD_MONTH (ODBC 1.0)
SQL_FN_TD_MONTHNAME (ODBC 2.0)
SQL_FN_TD_NOW (ODBC 1.0)
SQL_FN_TD_QUARTER (ODBC 1.0)
SQL_FN_TD_SECOND (ODBC 1.0)
SQL_FN_TD_TIMESTAMPADD (ODBC 2.0)
SQL_FN_TD_TIMESTAMPDIFF (ODBC 2.0)
SQL_FN_TD_WEEK (ODBC 1.0)
SQL_FN_TD_YEAR (ODBC 1.0)
SQL_TXN_CAPABLE 1.0 Примечание. Тип информации появился в ODBC 1.0; каждое возвращаемое значение помечено версией, в которой она была введена.

Значение SQLUSMALLINT, описывающее поддержку транзакции в драйвере или источнике данных:
SQL_TC_NONE = транзакции не поддерживаются. (ODBC 1.0)
SQL_TC_DML = Транзакции могут содержать только инструкции языка обработки данных (DML) (SELECT, INSERT, UPDATE, DELETE). Операторы языка определения данных (DDL), возникающие в транзакции, вызывают ошибку. (ODBC 1.0)
SQL_TC_DDL_COMMIT = Транзакции могут содержать только инструкции DML. Инструкции DDL (CREATE TABLE, DROP INDEX и т. д.), возникающие в транзакции, вызывают фиксацию транзакции. (ODBC 2.0)
SQL_TC_DDL_IGNORE = Транзакции могут содержать только инструкции DML. Инструкции DDL, возникающие в транзакции, игнорируются. (ODBC 2.0)
SQL_TC_ALL = Транзакции могут содержать инструкции DDL и инструкции DML в любом порядке. (ODBC 1.0)

(Так как поддержка транзакций является обязательной в SQL-92, драйвер соответствия SQL-92 [любой уровень] никогда не вернет SQL_TC_NONE.)
SQL_TXN_ISOLATION_OPTION 1.0 Битовая маска SQLUINTEGER, перечисляющая уровни изоляции транзакций, доступные из драйвера или источника данных.

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

Описание этих уровней изоляции см. в описании SQL_DEFAULT_TXN_ISOLATION.

Чтобы задать уровень изоляции транзакций, приложение вызывает SQLSetConnectAttr для задания атрибута SQL_ATTR_TXN_ISOLATION. Дополнительные сведения см. в разделе "Функция SQLSetConnectAttr".

Драйвер уровня входа SQL-92 всегда возвращает SQL_TXN_SERIALIZABLE по мере поддержки. Драйвер на переходном уровне FIPS всегда возвращает все эти параметры в соответствии с поддерживаемыми.
SQL_UNION 2.0 Битовая маска SQLUINTEGER, перечисляющая поддержку предложения UNION :
SQL_U_UNION = источник данных поддерживает предложение UNION .
SQL_U_UNION_ALL = Источник данных поддерживает ключевое слово ALL в предложении UNION . (SQLGetInfo возвращает SQL_U_UNION и SQL_U_UNION_ALL в этом случае.)

Драйвер уровня входа SQL-92 всегда возвращает оба этих параметра, как поддерживается.
SQL_USER_NAME 1.0 Символьная строка с именем, используемой в определенной базе данных, которая может отличаться от имени входа.
SQL_XOPEN_CLI_YEAR 3.0 Символьная строка, указывающая год публикации спецификации Open Group, с которой полностью соответствует версия диспетчера драйверов ODBC.

Пример

SQLGetInfo возвращает списки поддерживаемых параметров в виде битовой маски SQLUINTEGER в *InfoValuePtr. Битовая маска для каждого параметра используется вместе с флагом, чтобы определить, поддерживается ли этот параметр.

Например, приложение может использовать следующий код, чтобы определить, поддерживается ли скалярная функция SUBSTRING драйвером, связанным с подключением.

Другой пример использования SQLGetInfo см. в разделе "Функция SQLTables".

SQLUINTEGER fFuncs;  
  
SQLGetInfo(hdbc,  
           SQL_STRING_FUNCTIONS,  
           (SQLPOINTER)&fFuncs,  
           sizeof(fFuncs),  
           NULL);  
  
// SUBSTRING supported  
if (fFuncs & SQL_FN_STR_SUBSTRING)  
   ;   // do something  
  
// SUBSTRING not supported  
else  
   ;   // do something else  

Возврат параметра атрибута подключения
Функция SQLGetConnectAttr

Определение того, поддерживает ли драйвер функцию
Функция SQLGetFunctions

Возврат параметра атрибута инструкции
Функция SQLGetStmtAttr

Возврат сведений о типах данных источника данных
Функция SQLGetTypeInfo

См. также

Справочник по API ODBC
Файлы заголовков ODBC