Compartilhar via


Função SQLGetInfo

Compatibilidade
Versão introduzida: ODBC 1.0 Conformidade com os padrões: ISO 92

Resumo
SQLGetInfo retorna informações gerais sobre o driver e a fonte de dados associados a uma conexão.

Sintaxe

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

Argumentos

Identificador de conexão
[Entrada] Identificador de conexão.

InfoType
[Entrada] Tipo de informação.

InfoValuePtr
[Saída] Ponteiro para um buffer no qual retornar as informações. Dependendo do InfoType solicitado, as informações retornadas serão uma das seguintes: uma cadeia de caracteres terminada em nulo, um valor SQLUSMALLINT, uma máscara de bits SQLUINTEGER, um sinalizador SQLUINTEGER, um valor binário SQLUINTEGER ou um valor SQLULEN.

Se o argumento InfoType for SQL_DRIVER_HDESC ou SQL_DRIVER_HSTMT, o argumento InfoValuePtr será de entrada e saída. (Consulte os descritores SQL_DRIVER_HDESC ou SQL_DRIVER_HSTMT mais adiante na descrição desta função para obter mais informações.)

Se InfoValuePtr for NULL, StringLengthPtr ainda retornará o número total de bytes (excluindo o caractere de terminação nula para dados de caractere) disponíveis para retornar no buffer apontado por InfoValuePtr.

BufferLength
[Entrada] Comprimento do buffer *InfoValuePtr . Se o valor em *InfoValuePtr não for uma cadeia de caracteres ou se InfoValuePtr for um ponteiro nulo, o argumento BufferLength será ignorado. O driver pressupõe que o tamanho de *InfoValuePtr é SQLUSMALLINT ou SQLUINTEGER, com base no InfoType. Se *InfoValuePtr for uma cadeia de caracteres Unicode (ao chamar SQLGetInfoW), o argumento BufferLength deverá ser um número par; caso contrário, SQLSTATE HY090 (cadeia de caracteres ou comprimento de buffer inválido) será retornado.

StringLengthPtr
[Saída] Ponteiro para um buffer no qual retornar o número total de bytes (excluindo o caractere de terminação nula para dados de caractere) disponíveis para retornar em *InfoValuePtr.

Para dados de caractere, se o número de bytes disponíveis para retorno for maior ou igual a BufferLength, as informações em *InfoValuePtr serão truncadas para bytes BufferLength menos o comprimento de um caractere de terminação nula e serão terminadas em nulo pelo driver.

Para todos os outros tipos de dados, o valor de BufferLength é ignorado e o driver pressupõe que o tamanho de *InfoValuePtr é SQLUSMALLINT ou SQLUINTEGER, dependendo do InfoType.

Devoluções

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR ou SQL_INVALID_HANDLE.

Diagnósticos

Quando SQLGetInfo retorna SQL_ERROR ou SQL_SUCCESS_WITH_INFO, um valor SQLSTATE associado pode ser obtido chamando SQLGetDiagRec com um HandleType de SQL_HANDLE_DBC e um Handle de ConnectionHandle. A tabela a seguir lista os valores SQLSTATE normalmente retornados por SQLGetInfo e explica cada um no contexto dessa função; a notação "(DM)" precede as descrições de SQLSTATEs retornadas pelo Gerenciador de Driver. O código de retorno associado a cada valor SQLSTATE é SQL_ERROR, a menos que indicado de outra forma.

SQLSTATE Erro Descrição
01000 Aviso geral Mensagem informativa específica do driver. (A função retorna SQL_SUCCESS_WITH_INFO.)
01004 Dados de cadeia de caracteres, truncados à direita O buffer *InfoValuePtr não era grande o suficiente para retornar todas as informações solicitadas. Portanto, as informações foram truncadas. O comprimento das informações solicitadas em sua forma não truncada é retornado em *StringLengthPtr. (A função retorna SQL_SUCCESS_WITH_INFO.)
08003 Conexão não aberta (DM) O tipo de informação solicitada no infotipo requer uma conexão aberta. Dos tipos de informações reservados pelo ODBC, apenas SQL_ODBC_VER podem ser retornados sem uma conexão aberta.
08S01 Falha no link de comunicação O link de comunicação entre o driver e a fonte de dados à qual o driver estava conectado falhou antes que a função concluísse o processamento.
HY000 Erro geral Ocorreu um erro para o qual não havia SQLSTATE específico e para o qual nenhum SQLSTATE específico da implementação foi definido. A mensagem de erro retornada por SQLGetDiagRec no buffer *MessageText descreve o erro e sua causa.
HY001 Erro de alocação de memória O driver não pôde alocar a memória necessária para dar suporte à execução ou conclusão da função.
HY010 Erro de sequência de função (DM) SQLExecute, SQLExecDirect ou SQLMoreResults foi chamado para o StatementHandle e retornado SQL_PARAM_DATA_AVAILABLE. Essa função foi chamada antes que os dados fossem recuperados para todos os parâmetros transmitidos.
HY013 Erro de gerenciamento de memória A chamada de função não pôde ser processada porque os objetos de memória subjacentes não puderam ser acessados, possivelmente devido a condições de memória baixa.
HY024 Valor de atributo inválido (DM) O argumento InfoType foi SQL_DRIVER_HSTMT e o valor apontado por InfoValuePtr não era um identificador de instrução válido.

(DM) O argumento InfoType foi SQL_DRIVER_HDESC e o valor apontado por InfoValuePtr não era um identificador de descritor válido.
HY090 Cadeia de caracteres ou comprimento de buffer inválido (DM) O valor especificado para o argumento BufferLength era menor que 0.

(DM) O valor especificado para BufferLength era um número ímpar e *InfoValuePtr era de um tipo de dados Unicode.
HY096 Tipo de informação fora do intervalo O valor especificado para o argumento InfoType não era válido para a versão do ODBC compatível com o driver.
HY117 A conexão está suspensa devido ao estado desconhecido da transação. Somente funções de desconexão e somente leitura são permitidas. (DM) Para obter mais informações sobre o estado suspenso, consulte Função SQLEndTran.
HYC00 Campo opcional não implementado O valor especificado para o argumento InfoType era um valor específico do driver que não é compatível com o driver.
HYT01 O tempo limite da conexão expirou O período de tempo limite da conexão expirou antes que a fonte de dados respondesse à solicitação. O período de tempo limite da conexão é definido por meio de SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT.
IM001 O driver não suporta esta função (DM) O driver que corresponde ao ConnectionHandle não dá suporte à função.

Comentários

Os tipos de informação definidos atualmente são mostrados em "Tipos de Informação", mais adiante nesta seção; Espera-se que mais sejam definidos para aproveitar as diferentes fontes de dados. Uma variedade de tipos de informações é reservada pelo ODBC; os desenvolvedores de driver devem reservar valores para seu próprio uso específico do driver do Open Group. SQLGetInfo não executa nenhuma conversão ou conversão Unicode (consulte o Apêndice A: Códigos de erro ODBC da referência do programador ODBC) para InfoTypes definidos pelo driver. Confira Tipos de dados específicos do driver, tipos de descritor, tipos de informações, tipos de diagnóstico e atributos para obter mais informações. O formato das informações retornadas em *InfoValuePtr depende do InfoType solicitado. SQLGetInfo retornará informações em um dos cinco formatos diferentes:

  • Uma cadeia de caracteres terminada em nulo

  • Um valor SQLUSMALLINT

  • Uma máscara de bits SQLUINTEGER

  • Um valor SQLUINTEGER

  • Um valor binário SQLUINTEGER

O formato de cada um dos seguintes tipos de informação é anotado na descrição do tipo. O aplicativo deve converter o valor retornado em *InfoValuePtr adequadamente. Para obter um exemplo de como um aplicativo pode recuperar dados de uma máscara de bits SQLUINTEGER, consulte "Exemplo de código".

Um driver deve retornar um valor para cada tipo de informação definido nas tabelas a seguir. Se um tipo de informação não se aplicar ao driver ou à fonte de dados, o driver retornará um dos valores listados na tabela a seguir.

Tipo de informação Valor
Cadeia de caracteres ("Y" ou "N") "N"
Cadeia de caracteres (não "Y" ou "N") Cadeia de caracteres vazia
SQLUSMALLINT 0
Máscara de bits SQLUINTEGER ou valor binário SQLUINTEGER 0L

Por exemplo, se uma fonte de dados não der suporte a procedimentos, SQLGetInfo retornará os valores listados na tabela a seguir para os valores de InfoType relacionados a procedimentos.

InfoType Valor
SQL_PROCEDURES "N"
SQL_ACCESSIBLE_PROCEDURES "N"
SQL_MAX_PROCEDURE_NAME_LEN 0
SQL_PROCEDURE_TERM Cadeia de caracteres vazia

SQLGetInfo retorna SQLSTATE HY096 (valor de argumento inválido) para valores de InfoType que estão no intervalo de tipos de informações reservados para uso pelo ODBC, mas não são definidos pela versão do ODBC compatível com o driver. Para determinar com qual versão do ODBC um driver está em conformidade, um aplicativo chama SQLGetInfo com o tipo de informação SQL_DRIVER_ODBC_VER. SQLGetInfo retorna SQLSTATE HYC00 (recurso opcional não implementado) para valores de InfoType que estão no intervalo de tipos de informações reservados para uso específico do driver, mas não têm suporte do driver.

Todas as chamadas para SQLGetInfo exigem uma conexão aberta, exceto quando o InfoType é SQL_ODBC_VER, que retorna a versão do Gerenciador de Driver.

Tipos de informação

Esta seção lista os tipos de informações com suporte do SQLGetInfo. Os tipos de informação são agrupados categoricamente e listados em ordem alfabética. Os tipos de informações que foram adicionados ou renomeados para ODBC 3*.x* também são listados.

Informações do motorista

Os seguintes valores do argumento InfoType retornam informações sobre o driver ODBC, como o número de instruções ativas, o nome da fonte de dados e o nível de conformidade dos padrões de interface:

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

Observação

Ao implementar SQLGetInfo, um driver pode melhorar o desempenho minimizando o número de vezes que as informações são enviadas ou solicitadas do servidor.

Informações sobre o produto DBMS

Os seguintes valores do argumento InfoType retornam informações sobre o produto DBMS, como o nome e a versão do DBMS:

SQL_DATABASE_NAME
SQL_DBMS_NAME

SQL_DBMS_VER

Informações da fonte de dados

Os seguintes valores do argumento InfoType retornam informações sobre a fonte de dados, como características do cursor e recursos de transação:

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 suportado

Os valores a seguir do argumento InfoType retornam informações sobre as instruções SQL compatíveis com a fonte de dados. A sintaxe SQL de cada recurso descrito por esses tipos de informação é a sintaxe SQL-92. Esses tipos de informações não descrevem exaustivamente toda a gramática SQL-92. Em vez disso, eles descrevem as partes da gramática para as quais as fontes de dados normalmente oferecem diferentes níveis de suporte. Especificamente, a maioria das instruções DDL no SQL-92 são abordadas.

Os aplicativos devem determinar o nível geral de gramática suportada a partir do tipo de informação SQL_SQL_CONFORMANCE e usar os outros tipos de informação para determinar variações do nível de conformidade com os padrões declarados.

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

Limites SQL

Os valores a seguir do argumento InfoType retornam informações sobre os limites aplicados a identificadores e cláusulas em instruções SQL, como os comprimentos máximos de identificadores e o número máximo de colunas em uma lista de seleção. As limitações podem ser impostas pelo driver ou pela fonte de dados.

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

Informações da função escalar

Os valores a seguir do argumento InfoType retornam informações sobre as funções escalares compatíveis com a fonte de dados e o driver. Para obter mais informações sobre funções escalares, consulte o Apêndice E: Funções escalares.

SQL_CONVERT_FUNCTIONS
SQL_NUMERIC_FUNCTIONS
SQL_STRING_FUNCTIONS
SQL_SYSTEM_FUNCTIONS

SQL_TIMEDATE_ADD_INTERVALS
SQL_TIMEDATE_DIFF_INTERVALS
SQL_TIMEDATE_FUNCTIONS

Informações de conversão

Os seguintes valores do argumento InfoType retornam uma lista dos tipos de dados SQL para os quais a fonte de dados pode converter o tipo de dados SQL especificado com a função escalar 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

Tipos de informações adicionados para ODBC 3.x

Os seguintes valores do argumento InfoType foram adicionados para ODBC 3.x:

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

Tipos de informações renomeados para ODBC 3.x

Os valores a seguir do argumento InfoType foram renomeados para ODBC 3.x.

Nome antigo Novo nome
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

Tipos de informações preteridos no ODBC 3.x

Os valores a seguir do argumento InfoType foram preteridos no ODBC 3.x. Os drivers ODBC 3.x devem continuar a dar suporte a esses tipos de informações para compatibilidade com versões anteriores com aplicativos ODBC 2.x. (Para obter mais informações sobre esses tipos, consulte Suporte a SQLGetInfo no Apêndice G: Diretrizes de driver para compatibilidade com versões anteriores.)

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

Descrições de tipo de informação

A tabela a seguir lista em ordem alfabética cada tipo de informação, a versão do ODBC na qual foi introduzido e sua descrição.

Tipo de informação Versão ODBC Descrição
SQL_ACCESSIBLE_PROCEDURES 1.0 Uma cadeia de caracteres: "Y" se o usuário puder executar todos os procedimentos retornados por SQLProcedures; "N" se houver procedimentos retornados que o usuário não possa executar.
SQL_ACCESSIBLE_TABLES 1.0 Uma cadeia de caracteres: "Y" se o usuário tiver privilégios SELECT garantidos para todas as tabelas retornadas por SQLTables; "N" se houver tabelas retornadas que o usuário não possa acessar.
SQL_ACTIVE_ENVIRONMENTS 3.0 Um valor SQLUSMALLINT que especifica o número máximo de ambientes ativos aos quais o driver pode dar suporte. Se não houver limite especificado ou o limite for desconhecido, esse valor será definido como zero.
SQL_AGGREGATE_FUNCTIONS 3.0 Uma máscara de bits SQLUINTEGER enumerando o suporte para funções de agregação:
SQL_AF_ALL
SQL_AF_AVG
SQL_AF_COUNT
SQL_AF_DISTINCT
SQL_AF_MAX
SQL_AF_MIN
SQL_AF_SUM

Um driver compatível com o nível de entrada SQL-92 sempre retornará todas essas opções conforme suportado.
SQL_ALTER_DOMAIN 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução ALTER DOMAIN , conforme definido em SQL-92, com suporte da fonte de dados. Um driver compatível com nível completo SQL-92 sempre retornará todas as máscaras de bits. Um valor retornado de "0" significa que não há suporte para a instrução ALTER DOMAIN .

O nível de conformidade SQL-92 ou FIPS no qual esse recurso deve ser suportado é mostrado entre parênteses ao lado de cada máscara de bits.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são suportadas:
SQL_AD_ADD_DOMAIN_CONSTRAINT = A adição de uma restrição de domínio é suportada (nível completo)
SQL_AD_ADD_DOMAIN_DEFAULT = <alterar o domínio><definir a cláusula> padrão do domínio é suportada (nível completo)
SQL_AD_CONSTRAINT_NAME_DEFINITION = <restrição de definição de> nome é suportada para nomear restrição de domínio (nível intermediário)
SQL_AD_DROP_DOMAIN_CONSTRAINT = <descartar cláusula> de restrição de domínio é suportada (nível completo)
SQL_AD_DROP_DOMAIN_DEFAULT = <alterar a cláusula> padrão de domínio de descarte de domínio><é suportada (nível completo)

Os bits a seguir especificam os atributos> de restrição com suporte <se <a restrição> de domínio de adição for suportada (o bit SQL_AD_ADD_DOMAIN_CONSTRAINT é definido):
SQL_AD_ADD_CONSTRAINT_DEFERRABLE (Nível completo)
SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE (Nível completo)
SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED (Nível completo)
SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE (Nível completo)
SQL_ALTER_TABLE 2,0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução ALTER TABLE com suporte da fonte de dados.

O nível de conformidade SQL-92 ou FIPS no qual esse recurso deve ser suportado é mostrado entre parênteses ao lado de cada máscara de bits.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são suportadas:
SQL_AT_ADD_COLUMN_COLLATION = <adicionar cláusula de coluna> é suportada, com facilidade para especificar agrupamento de coluna (nível completo) (ODBC 3.0)
SQL_AT_ADD_COLUMN_DEFAULT = <adicionar cláusula de coluna> é suportada, com facilidade para especificar padrões de coluna (nível de transição FIPS) (ODBC 3.0)
SQL_AT_ADD_COLUMN_SINGLE = <adicionar coluna> é suportado (nível de transição FIPS) (ODBC 3.0)
SQL_AT_ADD_CONSTRAINT = <adicionar cláusula de coluna> é suportada, com facilidade para especificar restrições de coluna (nível de transição FIPS) (ODBC 3.0)
SQL_AT_ADD_TABLE_CONSTRAINT = <adicionar cláusula de restrição> de tabela é suportada (nível de transição FIPS) (ODBC 3.0)
SQL_AT_CONSTRAINT_NAME_DEFINITION = <definição de> nome de restrição é suportada para nomear restrições de coluna e tabela (nível intermediário) (ODBC 3.0)
SQL_AT_DROP_COLUMN_CASCADE = <descartar coluna> CASCADE é suportado (nível de transição FIPS) (ODBC 3.0)
SQL_AT_DROP_COLUMN_DEFAULT = <alterar coluna de queda de coluna><a cláusula> padrão é suportada (nível intermediário) (ODBC 3.0)
SQL_AT_DROP_COLUMN_RESTRICT = <descartar coluna> RESTRICT é suportado (nível de transição FIPS) (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT = <descartar coluna> RESTRICT é suportado (nível de transição FIPS) (ODBC 3.0)
SQL_AT_SET_COLUMN_DEFAULT = <alterar a cláusula> padrão da coluna do conjunto de colunas><é suportada (nível intermediário) (ODBC 3.0)

Os bits a seguir especificam os atributos> de restrição de suporte <se houver suporte para a especificação de restrições de coluna ou tabela (o bit SQL_AT_ADD_CONSTRAINT é definido):
SQL_AT_CONSTRAINT_INITIALLY_DEFERRED (Nível completo) (ODBC 3.0)
SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE (Nível completo) (ODBC 3.0)
SQL_AT_CONSTRAINT_DEFERRABLE (Nível completo) (ODBC 3.0)
SQL_AT_CONSTRAINT_NON_DEFERRABLE (Nível completo) (ODBC 3.0)
SQL_ASYNC_DBC_FUNCTIONS 3.8 Um valor SQLUINTEGER que indica se o driver pode executar funções de forma assíncrona no identificador de conexão.

SQL_ASYNC_DBC_CAPABLE = O driver pode executar funções de conexão de forma assíncrona.
SQL_ASYNC_DBC_NOT_CAPABLE = O driver não pode executar funções de conexão de forma assíncrona.
SQL_ASYNC_MODE 3.0 Um valor SQLUINTEGER que indica o nível de suporte assíncrono no driver:

SQL_AM_CONNECTION = A execução assíncrona no nível da conexão é suportada. Todos os identificadores de instrução associados a um determinado identificador de conexão estão no modo assíncrono ou todos estão no modo síncrono. Um identificador de instrução em uma conexão não pode estar no modo assíncrono, enquanto outro identificador de instrução na mesma conexão está no modo síncrono e vice-versa.
SQL_AM_STATEMENT = A execução assíncrona no nível da instrução é suportada. Alguns identificadores de instrução associados a um identificador de conexão podem estar no modo assíncrono, enquanto outros identificadores de instrução na mesma conexão estão no modo síncrono.
SQL_AM_NONE = O modo assíncrono não é suportado.
SQL_ASYNC_NOTIFICATION 3.8 Um valor SQLUINTEGER que indica se o driver dá suporte à notificação assíncrona:

SQL_ASYNC_NOTIFICATION_CAPABLE = A notificação de execução assíncrona é compatível com o driver.
SQL_ASYNC_NOTIFICATION_NOT_CAPABLE = A notificação de execução assíncrona não é compatível com o driver.

Há duas categorias de operações assíncronas ODBC: operações assíncronas no nível da conexão e operações assíncronas no nível da instrução. Se um driver retornar SQL_ASYNC_NOTIFICATION_CAPABLE, ele deverá dar suporte à notificação para todas as APIs que ele pode executar de forma assíncrona.
SQL_BATCH_ROW_COUNT 3.0 Uma máscara de bits SQLUINTEGER que enumera o comportamento do driver em relação à disponibilidade de contagens de linhas. As seguintes máscaras de bits são usadas junto com o tipo de informação:

SQL_BRC_ROLLED_UP = As contagens de linhas para instruções INSERT, DELETE ou UPDATE consecutivas são acumuladas em uma. Se esse bit não estiver definido, as contagens de linhas estarão disponíveis para cada instrução.
SQL_BRC_PROCEDURES = As contagens de linhas, se houver, estão disponíveis quando um lote é executado em um procedimento armazenado. Se as contagens de linhas estiverem disponíveis, elas poderão ser acumuladas ou individualmente, dependendo do bit SQL_BRC_ROLLED_UP.
SQL_BRC_EXPLICIT = As contagens de linhas, se houver, estão disponíveis quando um lote é executado diretamente chamando SQLExecute ou SQLExecDirect. Se as contagens de linhas estiverem disponíveis, elas poderão ser acumuladas ou individualmente, dependendo do bit SQL_BRC_ROLLED_UP.
SQL_BATCH_SUPPORT 3.0 Uma máscara de bits SQLUINTEGER enumerando o suporte do driver para lotes. As seguintes máscaras de bits são usadas para determinar qual nível é suportado:

SQL_BS_SELECT_EXPLICIT = O driver dá suporte a lotes explícitos que podem ter instruções de geração de conjunto de resultados.
SQL_BS_ROW_COUNT_EXPLICIT = O driver dá suporte a lotes explícitos que podem ter instruções de geração de contagem de linhas.
SQL_BS_SELECT_PROC = O driver dá suporte a procedimentos explícitos que podem ter instruções de geração de conjunto de resultados.
SQL_BS_ROW_COUNT_PROC = O driver dá suporte a procedimentos explícitos que podem ter instruções de geração de contagem de linhas.
SQL_BOOKMARK_PERSISTENCE 2,0 Uma máscara de bits SQLUINTEGER enumerando as operações por meio das quais os indicadores persistem. As seguintes máscaras de bits são usadas junto com o sinalizador para determinar por quais opções os indicadores persistem:

SQL_BP_CLOSE = Os indicadores são válidos depois que um aplicativo chama SQLFreeStmt com a opção SQL_CLOSE ou SQLCloseCursor para fechar o cursor associado a uma instrução.
SQL_BP_DELETE = O indicador de uma linha é válido depois que essa linha é excluída.
SQL_BP_DROP = Os indicadores são válidos depois que um aplicativo chama SQLFreeHandle com um HandleType de SQL_HANDLE_STMT para descartar uma instrução.
SQL_BP_TRANSACTION = Os indicadores são válidos depois que um aplicativo confirma ou reverte uma transação.
SQL_BP_UPDATE = O indicador de uma linha é válido depois que qualquer coluna nessa linha foi atualizada, incluindo colunas-chave.
SQL_BP_OTHER_HSTMT = Um indicador associado a uma instrução pode ser usado com outra instrução. A menos que SQL_BP_CLOSE ou SQL_BP_DROP seja especificado, o cursor na primeira instrução deve estar aberto.
SQL_CATALOG_LOCATION 2,0 Um valor SQLUSMALLINT que indica a posição do catálogo em um nome de tabela qualificado:

SQL_CL_START
SQL_CL_END
Por exemplo, um driver Xbase retorna SQL_CL_START porque o nome do diretório (catálogo) está no início do nome da tabela, como em \EMPDATA\EMP. DBF. Um driver do ORACLE Server retorna SQL_CL_END porque o catálogo está no final do nome da tabela, como em ADMIN. EMP@EMPDATA.

Um driver compatível com o nível SQL 92 Full sempre retornará SQL_CL_START. Um valor de 0 será retornado se os catálogos não forem compatíveis com a fonte de dados. Para determinar se há suporte para catálogos, um aplicativo chama SQLGetInfo com o tipo de informação SQL_CATALOG_NAME.

Esse infotipo foi renomeado para ODBC 3.0 a partir do SQL_QUALIFIER_LOCATION de infotipo ODBC 2.0.
SQL_CATALOG_NAME 3.0 Uma cadeia de caracteres: "Y" se o servidor oferecer suporte a nomes de catálogo ou "N" se não oferecer.

Um driver compatível com o nível SQL 92 Full sempre retornará "Y".
SQL_CATALOG_NAME_SEPARATOR 1.0 Uma cadeia de caracteres: o caractere ou caracteres que a fonte de dados define como o separador entre um nome de catálogo e o elemento de nome qualificado que o segue ou precede.

Uma cadeia de caracteres vazia será retornada se os catálogos não forem compatíveis com a fonte de dados. Para determinar se há suporte para catálogos, um aplicativo chama SQLGetInfo com o tipo de informação SQL_CATALOG_NAME. Um driver compatível com o nível completo SQL-92 sempre retornará ".".

Esse infotipo foi renomeado para ODBC 3.0 do SQL_QUALIFIER_NAME_SEPARATOR de infotipo ODBC 2.0.
SQL_CATALOG_TERM 1.0 Uma cadeia de caracteres com o nome do fornecedor da fonte de dados para um catálogo; por exemplo, "banco de dados" ou "diretório". Essa cadeia de caracteres pode estar em maiúsculas, minúsculas ou maiúsculas e minúsculas.

Uma cadeia de caracteres vazia será retornada se os catálogos não forem compatíveis com a fonte de dados. Para determinar se há suporte para catálogos, um aplicativo chama SQLGetInfo com o tipo de informação SQL_CATALOG_NAME. Um driver compatível com o nível completo SQL-92 sempre retornará "catálogo".

Esse infotipo foi renomeado para ODBC 3.0 do SQL_QUALIFIER_TERM de infotipo ODBC 2.0.
SQL_CATALOG_USAGE 2,0 Uma máscara de bits SQLUINTEGER enumerando as instruções nas quais os catálogos podem ser usados.

As seguintes máscaras de bits são usadas para determinar onde os catálogos podem ser usados:
SQL__DML_STATEMENTS = Os catálogos são suportados em todas as instruções de Linguagem de Manipulação de Dados: SELECT, INSERT, UPDATE, DELETE e, se suportado, SELECT FOR UPDATE e instruções de atualização e exclusão posicionadas.
SQL__PROCEDURE_INVOCATION = Os catálogos têm suporte na instrução de invocação de procedimento ODBC.
SQL__TABLE_DEFINITION = Os catálogos são suportados em todas as instruções de definição de tabela: CREATE TABLE, CREATE VIEW, ALTER TABLE, DROP TABLE e DROP VIEW.
SQL__INDEX_DEFINITION = Os catálogos são suportados em todas as instruções de definição de índice: CREATE INDEX e DROP INDEX.
SQL__PRIVILEGE_DEFINITION = Os catálogos são suportados em todas as instruções de definição de privilégio: GRANT e REVOKE.

Um valor de 0 será retornado se os catálogos não forem compatíveis com a fonte de dados. Para determinar se há suporte para catálogos, um aplicativo chama SQLGetInfo com o tipo de informação SQL_CATALOG_NAME. Um driver compatível com o nível SQL 92 Full sempre retornará uma máscara de bits com todos esses bits definidos.

Esse infotipo foi renomeado para ODBC 3.0 do SQL_QUALIFIER_USAGE de infotipo ODBC 2.0.
SQL_COLLATION_SEQ 3.0 O nome da sequência de agrupamento. Essa é uma cadeia de caracteres que indica o nome do agrupamento padrão para o conjunto de caracteres padrão para este servidor (por exemplo, 'ISO 8859-1' ou EBCDIC). Se isso for desconhecido, uma cadeia de caracteres vazia será retornada. Um driver compatível com o nível SQL 92 Full sempre retornará uma cadeia de caracteres não vazia.
SQL_COLUMN_ALIAS 2,0 Uma cadeia de caracteres: "Y" se a fonte de dados der suporte a aliases de coluna; caso contrário, "N".

Um alias de coluna é um nome alternativo que pode ser especificado para uma coluna na lista de seleção usando uma cláusula AS. Um driver compatível com o nível de entrada SQL-92 sempre retornará "Y".
SQL_CONCAT_NULL_BEHAVIOR 1.0 Um valor SQLUSMALLINT que indica como a fonte de dados lida com a concatenação de colunas de tipo de dados de caractere com valor NULL com colunas de tipo de dados de caractere com valor não NULL:
SQL_CB_NULL = O resultado tem valor NULL.
SQL_CB_NON_NULL = O resultado é a concatenação de colunas ou colunas com valor não NULL.

Um driver compatível com o nível de entrada SQL-92 sempre retornará 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 Uma máscara de bits SQLUINTEGER. A máscara de bits indica as conversões suportadas pela fonte de dados com a função escalar CONVERT para dados do tipo nomeado no InfoType. Se a máscara de bits for igual a zero, a fonte de dados não dará suporte a nenhuma conversão de dados do tipo nomeado, incluindo a conversão para o mesmo tipo de dados.

Por exemplo, para determinar se uma fonte de dados dá suporte à conversão de dados SQL_INTEGER para o tipo de dados SQL_BIGINT, um aplicativo chama SQLGetInfo com o InfoType de SQL_CONVERT_INTEGER. O aplicativo executa uma operação AND com a máscara de bits e SQL_CVT_BIGINT retornadas. Se o valor resultante for diferente de zero, há suporte para a conversão.

As seguintes máscaras de bits são usadas para determinar quais conversões são suportadas:
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 Uma máscara de bits SQLUINTEGER enumerando as funções de conversão escalar compatíveis com o driver e a fonte de dados associada.

A seguinte máscara de bits é usada para determinar quais funções de conversão são suportadas:
SQL_FN_CVT_CASTSQL_FN_CVT_CONVERT
SQL_CORRELATION_NAME 1.0 Um valor SQLUSMALLINT que indica se há suporte para nomes de correlação de tabela:
SQL_CN_NONE = Nomes de correlação não são suportados.
SQL_CN_DIFFERENT = Os nomes de correlação são suportados, mas devem ser diferentes dos nomes das tabelas que eles representam.
SQL_CN_ANY = Os nomes de correlação são suportados e podem ser qualquer nome válido definido pelo usuário.

Um driver compatível com o nível de entrada SQL-92 sempre retornará SQL_CN_ANY.
SQL_CREATE_ASSERTION 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução CREATE ASSERTION , conforme definido em SQL-92, com suporte da fonte de dados.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são suportadas:
SQL_CA_CREATE_ASSERTION

Os bits a seguir especificam o atributo de restrição com suporte se a capacidade de especificar atributos de restrição explicitamente for suportada (consulte os tipos de informações SQL_ALTER_TABLE e SQL_CREATE_TABLE):
SQL_CA_CONSTRAINT_INITIALLY_DEFERRED
SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE
SQL_CA_CONSTRAINT_DEFERRABLE
SQL_CA_CONSTRAINT_NON_DEFERRABLE

Um driver compatível com o nível SQL 92 Full sempre retornará todas essas opções conforme suportado. Um valor retornado de "0" significa que não há suporte para a instrução CREATE ASSERTION .
SQL_CREATE_CHARACTER_SET 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução CREATE CHARACTER SET , conforme definido em SQL-92, com suporte da fonte de dados.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são suportadas:
SQL_CCS_CREATE_CHARACTER_SET
SQL_CCS_COLLATE_CLAUSE
SQL_CCS_LIMITED_COLLATION

Um driver compatível com o nível SQL 92 Full sempre retornará todas essas opções conforme suportado. Um valor retornado de "0" significa que a instrução CREATE CHARACTER SET não é suportada.
SQL_CREATE_COLLATION 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução CREATE COLLATION , conforme definido em SQL-92, com suporte da fonte de dados.

A seguinte máscara de bits é usada para determinar quais cláusulas são suportadas:
SQL_CCOL_CREATE_COLLATION

Um driver compatível com o nível completo SQL-92 sempre retornará essa opção conforme compatível. Um valor retornado de "0" significa que não há suporte para a instrução CREATE COLLATION .
SQL_CREATE_DOMAIN 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução CREATE DOMAIN , conforme definido em SQL-92, com suporte da fonte de dados.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são suportadas:
SQL_CDO_CREATE_DOMAIN = A instrução CREATE DOMAIN é suportada (nível intermediário).
SQL_CDO_CONSTRAINT_NAME_DEFINITION = <definição de nome> de restrição é suportada para nomear restrições de domínio (nível intermediário).

Os bits a seguir especificam a capacidade de criar restrições de coluna:
SQL_CDO_DEFAULT = A especificação de restrições de domínio é suportada (nível intermediário)
SQL_CDO_CONSTRAINT = Há suporte para a especificação de padrões de domínio (nível intermediário)
SQL_CDO_COLLATION = Há suporte para a especificação de ordenação de domínio (nível completo)

Os bits a seguir especificam os atributos de restrição com suporte se houver suporte para a especificação de restrições de domínio (SQL_CDO_DEFAULT estiver definido):
SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED (Nível completo)
SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE (Nível completo)
SQL_CDO_CONSTRAINT_DEFERRABLE (Nível completo)
SQL_CDO_CONSTRAINT_NON_DEFERRABLE (Nível completo)

Um valor retornado de "0" significa que não há suporte para a instrução CREATE DOMAIN .
SQL_CREATE_SCHEMA 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução CREATE SCHEMA , conforme definido em SQL-92, com suporte da fonte de dados.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são suportadas:
SQL_CS_CREATE_SCHEMA
SQL_CS_AUTHORIZATION
SQL_CS_DEFAULT_CHARACTER_SET

Um driver compatível com o nível intermediário SQL-92 sempre retornará as opções de SQL_CS_CREATE_SCHEMA e SQL_CS_AUTHORIZATION conforme compatível. Eles também devem ter suporte no nível de entrada SQL-92, mas não necessariamente como instruções SQL. Um driver compatível com o nível SQL 92 Full sempre retornará todas essas opções conforme suportado.
SQL_CREATE_TABLE 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução CREATE TABLE , conforme definido em SQL-92, com suporte da fonte de dados.

O nível de conformidade SQL-92 ou FIPS no qual esse recurso deve ser suportado é mostrado entre parênteses ao lado de cada máscara de bits.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são suportadas:
SQL_CT_CREATE_TABLE = Há suporte para a instrução CREATE TABLE. (Nível de entrada)
SQL_CT_TABLE_CONSTRAINT = A especificação de restrições de tabela é suportada (nível de transição FIPS)
SQL_CT_CONSTRAINT_NAME_DEFINITION = A <cláusula de definição> de nome de restrição é suportada para nomear restrições de coluna e tabela (nível intermediário)

Os bits a seguir especificam a capacidade de criar tabelas temporárias:
SQL_CT_COMMIT_PRESERVE = As linhas excluídas são preservadas na confirmação. (Nível completo)
SQL_CT_COMMIT_DELETE = As linhas excluídas são excluídas na confirmação. (Nível completo)
SQL_CT_GLOBAL_TEMPORARY = Tabelas temporárias globais podem ser criadas. (Nível completo)
SQL_CT_LOCAL_TEMPORARY = Tabelas temporárias locais podem ser criadas. (Nível completo)

Os bits a seguir especificam a capacidade de criar restrições de coluna:
SQL_CT_COLUMN_CONSTRAINT = A especificação de restrições de coluna é suportada (nível de transição FIPS)
SQL_CT_COLUMN_DEFAULT = A especificação de padrões de coluna é suportada (nível de transição FIPS)
SQL_CT_COLUMN_COLLATION = Há suporte para a especificação de agrupamento de colunas (nível completo)

Os bits a seguir especificam os atributos de restrição com suporte se houver suporte para a especificação de restrições de coluna ou tabela:
SQL_CT_CONSTRAINT_INITIALLY_DEFERRED (Nível completo)
SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE (Nível completo)
SQL_CT_CONSTRAINT_DEFERRABLE (Nível completo)
SQL_CT_CONSTRAINT_NON_DEFERRABLE (Nível completo)
SQL_CREATE_TRANSLATION 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução CREATE TRANSLATION , conforme definido em SQL-92, com suporte da fonte de dados.

A seguinte máscara de bits é usada para determinar quais cláusulas são suportadas:
SQL_CTR_CREATE_TRANSLATION

Um driver compatível com o nível completo SQL-92 sempre retornará essas opções conforme compatível. Um valor retornado de "0" significa que não há suporte para a instrução CREATE TRANSLATION .
SQL_CREATE_VIEW 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução CREATE VIEW , conforme definido no SQL-92, com suporte da fonte de dados.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são suportadas:
SQL_CV_CREATE_VIEW
SQL_CV_CHECK_OPTION
SQL_CV_CASCADED
SQL_CV_LOCAL

Um valor retornado de "0" significa que não há suporte para a instrução CREATE VIEW .

Um driver compatível com o nível de entrada SQL-92 sempre retornará as opções de SQL_CV_CREATE_VIEW e SQL_CV_CHECK_OPTION conforme compatível.

Um driver compatível com o nível SQL 92 Full sempre retornará todas essas opções conforme suportado.
SQL_CURSOR_COMMIT_BEHAVIOR 1.0 Um valor SQLUSMALLINT que indica como uma operação COMMIT afeta cursores e instruções preparadas na fonte de dados (o comportamento da fonte de dados quando você confirma uma transação).

O valor desse atributo refletirá o estado atual da próxima configuração: SQL_COPT_SS_PRESERVE_CURSORS.
SQL_CB_DELETE = Feche os cursores e exclua as instruções preparadas. Para usar o cursor novamente, o aplicativo deve repreparar e executar novamente a instrução.
SQL_CB_CLOSE = Fechar cursores. Para instruções preparadas, o aplicativo pode chamar SQLExecute na instrução sem chamar SQLPrepare novamente. O padrão para o driver ODBC do SQL é SQL_CB_CLOSE. Isso significa que o driver ODBC do SQL fechará o(s) cursor(es) quando você confirmar uma transação.
SQL_CB_PRESERVE = Preservar cursores na mesma posição de antes da operação COMMIT . O aplicativo pode continuar a buscar dados ou pode fechar o cursor e executar novamente a instrução sem reprepará-la.
SQL_CURSOR_ROLLBACK_BEHAVIOR 1.0 Um valor SQLUSMALLINT que indica como uma operação ROLLBACK afeta cursores e instruções preparadas na fonte de dados:
SQL_CB_DELETE = Feche os cursores e exclua as instruções preparadas. Para usar o cursor novamente, o aplicativo deve repreparar e executar novamente a instrução.
SQL_CB_CLOSE = Fechar cursores. Para instruções preparadas, o aplicativo pode chamar SQLExecute na instrução sem chamar SQLPrepare novamente.
SQL_CB_PRESERVE = Preservar cursores na mesma posição de antes da operação ROLLBACK . O aplicativo pode continuar a buscar dados ou pode fechar o cursor e executar novamente a instrução sem reprepará-la.
SQL_CURSOR_SENSITIVITY 3.0 Um valor SQLUINTEGER que indica o suporte para a sensibilidade do cursor:
SQL_INSENSITIVE = Todos os cursores no identificador de instrução mostram o conjunto de resultados sem refletir as alterações feitas nele por qualquer outro cursor na mesma transação.
SQL_UNSPECIFIED = Não é especificado se os cursores no identificador de instrução tornam visíveis as alterações feitas em um conjunto de resultados por outro cursor dentro da mesma transação. Os cursores no identificador de instrução podem tornar visíveis nenhuma, algumas ou todas essas alterações.
SQL_SENSITIVE = Os cursores são sensíveis a alterações feitas por outros cursores na mesma transação.

Um driver compatível com o nível de entrada SQL-92 sempre retornará a opção SQL_UNSPECIFIED conforme compatível.

Um driver compatível com o nível completo SQL-92 sempre retornará a opção SQL_INSENSITIVE conforme compatível.
SQL_DATA_SOURCE_NAME 1.0 Uma cadeia de caracteres com o nome da fonte de dados que foi usada durante a conexão. Se o aplicativo for chamado SQLConnect, esse será o valor do argumento szDSN . Se o aplicativo chamou SQLDriverConnect ou SQLBrowseConnect, esse será o valor da palavra-chave DSN na cadeia de conexão passada para o driver. Se a cadeia de conexão não contiver a palavra-chave DSN (como quando ela contém a palavra-chave DRIVER ), essa será uma cadeia de caracteres vazia.
SQL_DATA_SOURCE_READ_ONLY 1.0 Uma cadeia de caracteres. "Y" se a fonte de dados estiver definida para o modo READ ONLY, "N" se for o contrário.

Essa característica pertence apenas à própria fonte de dados; Não é uma característica do driver que permite o acesso à fonte de dados. Um driver de leitura/gravação pode ser usado com uma fonte de dados somente leitura. Se um driver for somente leitura, todas as suas fontes de dados deverão ser somente leitura e deverão retornar SQL_DATA_SOURCE_READ_ONLY.
SQL_DATABASE_NAME 1.0 Uma cadeia de caracteres com o nome do banco de dados atual em uso, se a fonte de dados definir um objeto nomeado chamado "banco de dados".

No ODBC 3.x, o valor retornado para esse InfoType também pode ser retornado chamando SQLGetConnectAttr com um argumento Attribute de SQL_ATTR_CURRENT_CATALOG.
SQL_DATETIME_LITERALS 3.0 Uma máscara de bits SQLUINTEGER enumerando os literais de data e hora SQL-92 com suporte da fonte de dados. Observe que esses são os literais de data e hora listados na especificação SQL-92 e são separados das cláusulas de escape literais de data e hora definidas pelo ODBC. Para obter mais informações sobre as cláusulas de escape literais de data e hora do ODBC, consulte Literais de data, hora e carimbo de data/hora.

Um driver compatível com o nível de transição FIPS sempre retornará o valor "1" na máscara de bits para os bits na lista a seguir. Um valor de "0" significa que não há suporte para literais de data e hora do SQL-92.

As seguintes máscaras de bits são usadas para determinar quais literais têm suporte:
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 Uma cadeia de caracteres com o nome do produto DBMS acessado pelo driver.
SQL_DBMS_VER 1.0 Uma cadeia de caracteres que indica a versão do produto DBMS acessada pelo driver. A versão é do formato ##.##.####, onde os dois primeiros dígitos são a versão principal, os próximos dois dígitos são a versão secundária e os últimos quatro dígitos são a versão de lançamento. O driver deve renderizar a versão do produto DBMS nesse formato, mas também pode acrescentar a versão específica do produto DBMS. Por exemplo, "04.01.0000 Rdb 4.1".
SQL_DDL_INDEX 3.0 Um valor SQLUINTEGER que indica suporte para criação e descarte de índices:
SQL_DI_CREATE_INDEX
SQL_DI_DROP_INDEX
SQL_DEFAULT_TXN_ISOLATION 1.0 Um valor SQLUINTEGER que indica o nível de isolamento de transação padrão compatível com o driver ou a fonte de dados, ou zero se a fonte de dados não der suporte a transações. Os seguintes termos são usados para definir os níveis de isolamento da transação:
A Transação de Leitura Suja 1 altera uma linha. A transação 2 lê a linha alterada antes que a transação 1 confirme a alteração. Se a transação 1 reverter a alteração, a transação 2 terá lido uma linha que é considerada como nunca tendo existido.
A transação de leitura não repetível 1 lê uma linha. A transação 2 atualiza ou exclui essa linha e confirma essa alteração. Se a transação 1 tentar reler a linha, ela receberá valores de linha diferentes ou descobrirá que a linha foi excluída.
A Transação Fantasma 1 lê um conjunto de linhas que atendem a alguns critérios de pesquisa. A transação 2 gera uma ou mais linhas (por meio de inserções ou atualizações) que correspondem aos critérios de pesquisa. Se a transação 1 executar novamente a instrução que lê as linhas, ela receberá um conjunto diferente de linhas.

Se a fonte de dados der suporte a transações, o driver retornará uma das seguintes máscaras de bit:
SQL_TXN_READ_UNCOMMITTED = Leituras sujas, leituras não repetíveis e fantasmas são possíveis.
SQL_TXN_READ_COMMITTED = Leituras sujas não são possíveis. Leituras e fantasmas não repetíveis são possíveis.
SQL_TXN_REPEATABLE_READ = Leituras sujas e leituras não repetíveis não são possíveis. Fantasmas são possíveis.
SQL_TXN_SERIALIZABLE = As transações são serializáveis. As transações serializáveis não permitem leituras sujas, leituras não repetíveis ou fantasmas.
SQL_DESCRIBE_PARAMETER 3.0 Uma cadeia de caracteres: "Y" se os parâmetros puderem ser descritos; "N", se não.

Um driver compatível com o nível completo SQL-92 geralmente retornará "Y" porque dará suporte à instrução DESCRIBE INPUT . No entanto, como isso não especifica diretamente o suporte SQL subjacente, a descrição de parâmetros pode não ter suporte, mesmo em um driver compatível com o nível SQL 92 Full.
SQL_DM_VER 3.0 Uma cadeia de caracteres com a versão do Gerenciador de Driver. A versão tem a forma ##.##.####.####, onde:
O primeiro conjunto de dois dígitos é a versão principal do ODBC, conforme fornecido pela constante SQL_SPEC_MAJOR.
O segundo conjunto de dois dígitos é a versão ODBC secundária, conforme fornecido pela constante SQL_SPEC_MINOR.
O terceiro conjunto de quatro dígitos é o número de build principal do Gerenciador de Driver.
O último conjunto de quatro dígitos é o número de build secundário do Gerenciador de Driver.
A versão do Gerenciador de Driver do Windows 7 é 03.80. A versão do Windows 8 Driver Manager é 03.81.
SQL_DRIVER_AWARE_POOLING_SUPPORTED 3.8 Um valor SQLUINTEGER que indica se o driver dá suporte ao pool com reconhecimento de driver. (Para obter mais informações, consulte Pool de conexões com reconhecimento de driver.

SQL_DRIVER_AWARE_POOLING_CAPABLE indica que o driver pode dar suporte ao mecanismo de pool com reconhecimento de driver.
SQL_DRIVER_AWARE_POOLING_NOT_CAPABLE indica que o driver não pode dar suporte ao mecanismo de pool com reconhecimento de driver.

Um driver não precisa implementar SQL_DRIVER_AWARE_POOLING_SUPPORTED e o Gerenciador de Driver não respeitará o valor retornado do driver.
SQL_DRIVER_HDBCSQL_DRIVER_HENV 1.0 Um valor SQLULEN, o identificador de ambiente ou o identificador de conexão do driver, determinado pelo argumento InfoType.

Esses tipos de informações são implementados apenas pelo Gerenciador de Driver.
SQL_DRIVER_HDESC 3.0 Um valor SQLULEN, o identificador do descritor do driver determinado pelo identificador do descritor do Gerenciador de Driver, que deve ser passado na entrada em *InfoValuePtr do aplicativo. Nesse caso, InfoValuePtr é um argumento de entrada e saída. O identificador do descritor de entrada passado em *InfoValuePtr deve ter sido alocado explícita ou implicitamente no ConnectionHandle.

O aplicativo deve fazer uma cópia do identificador de descritor do Gerenciador de Driver antes de chamar SQLGetInfo com esse tipo de informação, para garantir que o identificador não seja substituído na saída.

Esse tipo de informação é implementado apenas pelo Gerenciador de Driver.
SQL_DRIVER_HLIB 2,0 Um valor SQLULEN, o hinst da biblioteca de carregamento retornado ao Gerenciador de Driver quando ele carregou a DLL do driver em um sistema operacional Microsoft Windows ou seu equivalente em outro sistema operacional. O identificador é válido apenas para o identificador de conexão especificado na chamada para SQLGetInfo.

Esse tipo de informação é implementado apenas pelo Gerenciador de Driver.
SQL_DRIVER_HSTMT 1.0 Um valor SQLULEN, o identificador de instrução do driver determinado pelo identificador de instrução do Gerenciador de Driver, que deve ser passado na entrada em *InfoValuePtr do aplicativo. Nesse caso, InfoValuePtr é um argumento de entrada e saída. O identificador de instrução de entrada passado em *InfoValuePtr deve ter sido alocado no argumento ConnectionHandle.

O aplicativo deve fazer uma cópia do identificador de instrução do Gerenciador de Driver antes de chamar SQLGetInfo com esse tipo de informação, para garantir que o identificador não seja substituído na saída.

Esse tipo de informação é implementado apenas pelo Gerenciador de Driver.
SQL_DRIVER_NAME 1.0 Uma cadeia de caracteres com o nome do arquivo do driver usado para acessar a fonte de dados.
SQL_DRIVER_ODBC_VER 2,0 Uma cadeia de caracteres com a versão do ODBC à qual o driver dá suporte. A versão tem o formato ##.##, em que os dois primeiros dígitos são a versão principal e os próximos dois dígitos são a versão secundária. SQL_SPEC_MAJOR e SQL_SPEC_MINOR definem os números de versão principal e secundária. Para a versão do ODBC descrita neste manual, são 3 e 0, e o driver deve retornar "03.00".

O Gerenciador de Driver ODBC não modificará o valor retornado de SQLGetInfo(SQL_DRIVER_ODBC_VER) para manter a compatibilidade com versões anteriores para aplicativos existentes. O driver especifica qual valor será retornado. No entanto, um driver que dá suporte à extensibilidade de tipo de dados C deve retornar 3.8 (ou superior) quando um aplicativo chama SQLSetEnvAttr para definir SQL_ATTR_ODBC_VERSION como 3.8. Para obter mais informações, consulte Tipos de dados C em ODBC.
SQL_DRIVER_VER 1.0 Uma cadeia de caracteres com a versão do driver e, opcionalmente, uma descrição do driver. No mínimo, a versão tem o formato ##.##.####, em que os dois primeiros dígitos são a versão principal, os próximos dois dígitos são a versão secundária e os últimos quatro dígitos são a versão de lançamento.
SQL_DROP_ASSERTION 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução DROP ASSERTION , conforme definido em SQL-92, com suporte da fonte de dados.

A seguinte máscara de bits é usada para determinar quais cláusulas são suportadas:
SQL_DA_DROP_ASSERTION

Um driver compatível com o nível completo SQL-92 sempre retornará essa opção conforme compatível.
SQL_DROP_CHARACTER_SET 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução DROP CHARACTER SET , conforme definido em SQL-92, com suporte da fonte de dados.

A seguinte máscara de bits é usada para determinar quais cláusulas são suportadas:
SQL_DCS_DROP_CHARACTER_SET

Um driver compatível com o nível completo SQL-92 sempre retornará essa opção conforme compatível.
SQL_DROP_COLLATION 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução DROP COLLATION , conforme definido em SQL-92, com suporte da fonte de dados.

A seguinte máscara de bits é usada para determinar quais cláusulas são suportadas:
SQL_DC_DROP_COLLATION

Um driver compatível com o nível completo SQL-92 sempre retornará essa opção conforme compatível.
SQL_DROP_DOMAIN 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução DROP DOMAIN , conforme definido em SQL-92, com suporte da fonte de dados.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são suportadas:
SQL_DD_DROP_DOMAIN
SQL_DD_CASCADE
SQL_DD_RESTRICT

Um driver compatível com o nível intermediário SQL-92 sempre retornará todas essas opções conforme suportado.
SQL_DROP_SCHEMA 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução DROP SCHEMA , conforme definido em SQL-92, com suporte da fonte de dados.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são suportadas:
SQL_DS_DROP_SCHEMA
SQL_DS_CASCADE
SQL_DS_RESTRICT

Um driver compatível com o nível intermediário SQL-92 sempre retornará todas essas opções conforme suportado.
SQL_DROP_TABLE 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução DROP TABLE , conforme definido em SQL-92, com suporte da fonte de dados.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são suportadas:
SQL_DT_DROP_TABLE
SQL_DT_CASCADE
SQL_DT_RESTRICT

Um driver compatível com o nível de transição FIPS sempre retornará todas essas opções conforme suportado.
SQL_DROP_TRANSLATION 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução DROP TRANSLATION , conforme definido em SQL-92, com suporte da fonte de dados.

A seguinte máscara de bits é usada para determinar quais cláusulas são suportadas:
SQL_DTR_DROP_TRANSLATION

Um driver compatível com o nível completo SQL-92 sempre retornará essa opção conforme compatível.
SQL_DROP_VIEW 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas na instrução DROP VIEW , conforme definido em SQL-92, com suporte da fonte de dados.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são suportadas:
SQL_DV_DROP_VIEW
SQL_DV_CASCADE
SQL_DV_RESTRICT

Um driver compatível com o nível de transição FIPS sempre retornará todas essas opções conforme suportado.
SQL_DYNAMIC_CURSOR_ATTRIBUTES1 3.0 Uma máscara de bits SQLUINTEGER que descreve os atributos de um cursor dinâmico compatíveis com o driver. Essa máscara de bits contém o primeiro subconjunto de atributos; Para o segundo subconjunto, consulte SQL_DYNAMIC_CURSOR_ATTRIBUTES2.

As seguintes máscaras de bits são usadas para determinar quais atributos são suportados:
SQL_CA1_NEXT = Um argumento FetchOrientation de SQL_FETCH_NEXT tem suporte em uma chamada para SQLFetchScroll quando o cursor é um cursor dinâmico.
SQL_CA1_ABSOLUTE = FetchOrientation de SQL_FETCH_FIRST, SQL_FETCH_LAST e SQL_FETCH_ABSOLUTE têm suporte em uma chamada para SQLFetchScroll quando o cursor é um cursor dinâmico. (O conjunto de linhas que será buscado é independente da posição atual do cursor.)
SQL_CA1_RELATIVE = FetchOrientation de SQL_FETCH_PRIOR e SQL_FETCH_RELATIVE têm suporte em uma chamada para SQLFetchScroll quando o cursor é um cursor dinâmico. (O conjunto de linhas que será buscado depende da posição atual do cursor. Observe que isso é separado de SQL_FETCH_NEXT porque em um cursor somente de avanço, apenas SQL_FETCH_NEXT é suportado.)
SQL_CA1_BOOKMARK = Um argumento FetchOrientation de SQL_FETCH_BOOKMARK tem suporte em uma chamada para SQLFetchScroll quando o cursor é um cursor dinâmico.
SQL_CA1_LOCK_EXCLUSIVE = Um argumento LockType de SQL_LOCK_EXCLUSIVE tem suporte em uma chamada para SQLSetPos quando o cursor é um cursor dinâmico.
SQL_CA1_LOCK_NO_CHANGE = Um argumento LockType de SQL_LOCK_NO_CHANGE tem suporte em uma chamada para SQLSetPos quando o cursor é um cursor dinâmico.
SQL_CA1_LOCK_UNLOCK = Um argumento LockType de SQL_LOCK_UNLOCK tem suporte em uma chamada para SQLSetPos quando o cursor é um cursor dinâmico.
SQL_CA1_POS_POSITION = Um argumento Operation de SQL_POSITION tem suporte em uma chamada para SQLSetPos quando o cursor é um cursor dinâmico.
SQL_CA1_POS_UPDATE = Um argumento Operation de SQL_UPDATE tem suporte em uma chamada para SQLSetPos quando o cursor é um cursor dinâmico.
SQL_CA1_POS_DELETE = Um argumento Operation de SQL_DELETE tem suporte em uma chamada para SQLSetPos quando o cursor é um cursor dinâmico.
SQL_CA1_POS_REFRESH = Um argumento Operation de SQL_REFRESH é suportado em uma chamada para SQLSetPos quando o cursor é um cursor dinâmico.
SQL_CA1_POSITIONED_UPDATE = Uma instrução UPDATE WHERE CURRENT OF SQL é suportada quando o cursor é um cursor dinâmico. (Um driver compatível com o nível de entrada SQL-92 sempre retornará essa opção conforme compatível.)
SQL_CA1_POSITIONED_DELETE = Uma instrução DELETE WHERE CURRENT of SQL é suportada quando o cursor é um cursor dinâmico. (Um driver compatível com o nível de entrada SQL-92 sempre retornará essa opção conforme compatível.)
SQL_CA1_SELECT_FOR_UPDATE = Uma instrução SQL Select for UPDATE é suportada quando o cursor é um cursor dinâmico. (Um driver compatível com o nível de entrada SQL-92 sempre retornará essa opção conforme compatível.)
SQL_CA1_BULK_ADD = Um argumento Operation de SQL_ADD tem suporte em uma chamada para SQLBulkOperations quando o cursor é um cursor dinâmico.
SQL_CA1_BULK_UPDATE_BY_BOOKMARK = Um argumento Operation de SQL_UPDATE_BY_BOOKMARK tem suporte em uma chamada para SQLBulkOperations quando o cursor é um cursor dinâmico.
SQL_CA1_BULK_DELETE_BY_BOOKMARK = Um argumento Operation de SQL_DELETE_BY_BOOKMARK tem suporte em uma chamada para SQLBulkOperations quando o cursor é um cursor dinâmico.
SQL_CA1_BULK_FETCH_BY_BOOKMARK = Um argumento Operation de SQL_FETCH_BY_BOOKMARK tem suporte em uma chamada para SQLBulkOperations quando o cursor é um cursor dinâmico.

Um driver compatível com o nível intermediário SQL-92 geralmente retornará as opções SQL_CA1_NEXT, SQL_CA1_ABSOLUTE e SQL_CA1_RELATIVE conforme compatível, pois dá suporte a cursores roláveis por meio da instrução SQL FETCH inserida. No entanto, como isso não determina diretamente o suporte SQL subjacente, os cursores roláveis podem não ter suporte, mesmo para um driver compatível com o nível intermediário SQL-92.
SQL_DYNAMIC_CURSOR_ATTRIBUTES2 3.0 Uma máscara de bits SQLUINTEGER que descreve os atributos de um cursor dinâmico compatíveis com o driver. Essa máscara de bits contém o segundo subconjunto de atributos; Para o primeiro subconjunto, consulte SQL_DYNAMIC_CURSOR_ATTRIBUTES1.

As seguintes máscaras de bits são usadas para determinar quais atributos são suportados:
SQL_CA2_READ_ONLY_CONCURRENCY = Há suporte para um cursor dinâmico somente leitura, no qual nenhuma atualização é permitida. (O atributo de instrução SQL_ATTR_CONCURRENCY pode ser SQL_CONCUR_READ_ONLY para um cursor dinâmico).
SQL_CA2_LOCK_CONCURRENCY = Um cursor dinâmico que usa o nível mais baixo de bloqueio suficiente para garantir que a linha possa ser atualizada é suportado. (O atributo de instrução SQL_ATTR_CONCURRENCY pode ser SQL_CONCUR_LOCK para um cursor dinâmico.) Esses bloqueios devem ser consistentes com o nível de isolamento da transação definido pelo atributo de conexão SQL_ATTR_TXN_ISOLATION.
SQL_CA2_OPT_ROWVER_CONCURRENCY = Há suporte para um cursor dinâmico que usa o controle de simultaneidade otimista comparando versões de linha. (O atributo de instrução SQL_ATTR_CONCURRENCY pode ser SQL_CONCUR_ROWVER para um cursor dinâmico.)
SQL_CA2_OPT_VALUES_CONCURRENCY = Há suporte para um cursor dinâmico que usa o controle de simultaneidade otimista comparando valores. (O atributo de instrução SQL_ATTR_CONCURRENCY pode ser SQL_CONCUR_VALUES para um cursor dinâmico.)
SQL_CA2_SENSITIVITY_ADDITIONS = As linhas adicionadas são visíveis para um cursor dinâmico; O cursor pode rolar até essas linhas. (Onde essas linhas são adicionadas ao cursor depende do driver.)
SQL_CA2_SENSITIVITY_DELETIONS = As linhas excluídas não estão mais disponíveis para um cursor dinâmico e não deixam um "buraco" no conjunto de resultados; Depois que o cursor dinâmico rola de uma linha excluída, ele não pode retornar a essa linha.
SQL_CA2_SENSITIVITY_UPDATES = As atualizações nas linhas são visíveis para um cursor dinâmico; Se o cursor dinâmico rolar e retornar para uma linha atualizada, os dados retornados pelo cursor serão os dados atualizados, não os dados originais.
SQL_CA2_MAX_ROWS_SELECT = O atributo de instrução SQL_ATTR_MAX_ROWS afeta as instruções SELECT quando o cursor é um cursor dinâmico.
SQL_CA2_MAX_ROWS_INSERT = O atributo de instrução SQL_ATTR_MAX_ROWS afeta instruções INSERT quando o cursor é um cursor dinâmico.
SQL_CA2_MAX_ROWS_DELETE = O atributo de instrução SQL_ATTR_MAX_ROWS afeta instruções DELETE quando o cursor é um cursor dinâmico.
SQL_CA2_MAX_ROWS_UPDATE = O atributo de instrução SQL_ATTR_MAX_ROWS afeta as instruções UPDATE quando o cursor é um cursor dinâmico.
SQL_CA2_MAX_ROWS_CATALOG = O atributo de instrução SQL_ATTR_MAX_ROWS afeta os conjuntos de resultados CATALOG quando o cursor é um cursor dinâmico.
SQL_CA2_MAX_ROWS_AFFECTS_ALL = O atributo de instrução SQL_ATTR_MAX_ROWS afeta as instruções SELECT, INSERT, DELETE e UPDATE e os conjuntos de resultados CATALOG, quando o cursor é um cursor dinâmico.
SQL_CA2_CRC_EXACT = A contagem exata de linhas está disponível no campo de diagnóstico SQL_DIAG_CURSOR_ROW_COUNT quando o cursor é um cursor dinâmico.
SQL_CA2_CRC_APPROXIMATE = Uma contagem aproximada de linhas está disponível no campo de diagnóstico SQL_DIAG_CURSOR_ROW_COUNT quando o cursor é um cursor dinâmico.
SQL_CA2_SIMULATE_NON_UNIQUE = O driver não garante que as instruções de atualização ou exclusão posicionadas simuladas afetarão apenas uma linha quando o cursor for um cursor dinâmico; É responsabilidade do aplicativo garantir isso. (Se uma instrução afetar mais de uma linha, SQLExecute ou SQLExecDirect retorna SQLSTATE 01001 [conflito de operação do cursor].) Para definir esse comportamento, o aplicativo chama SQLSetStmtAttr com o atributo SQL_ATTR_SIMULATE_CURSOR definido como SQL_SC_NON_UNIQUE.
SQL_CA2_SIMULATE_TRY_UNIQUE = O driver tenta garantir que as instruções de atualização ou exclusão posicionadas simuladas afetarão apenas uma linha quando o cursor for um cursor dinâmico. O driver sempre executa essas instruções, mesmo que elas possam afetar mais de uma linha, como quando não há nenhuma chave exclusiva. (Se uma instrução afetar mais de uma linha, SQLExecute ou SQLExecDirect retorna SQLSTATE 01001 [conflito de operação do cursor].) Para definir esse comportamento, o aplicativo chama SQLSetStmtAttr com o atributo SQL_ATTR_SIMULATE_CURSOR definido como SQL_SC_TRY_UNIQUE.
SQL_CA2_SIMULATE_UNIQUE = O driver garante que as instruções de atualização ou exclusão posicionadas simuladas afetarão apenas uma linha quando o cursor for um cursor dinâmico. Se o driver não puder garantir isso para uma determinada instrução, SQLExecDirect ou SQLPrepare retornará SQLSTATE 01001 (conflito de operação do cursor). Para definir esse comportamento, o aplicativo chama SQLSetStmtAttr com o atributo SQL_ATTR_SIMULATE_CURSOR definido como SQL_SC_UNIQUE.
SQL_EXPRESSIONS_IN_ORDERBY 1.0 Uma cadeia de caracteres: "Y" se a fonte de dados der suporte a expressões na lista ORDER BY ; "N" se isso não acontecer.
SQL_FILE_USAGE 2,0 Um valor SQLUSMALLINT que indica como um driver de camada única trata diretamente os arquivos em uma fonte de dados:
SQL_FILE_NOT_SUPPORTED = O driver não é um driver de camada única. Por exemplo, um driver ORACLE é um driver de duas camadas.
SQL_FILE_TABLE = Um driver de camada única trata arquivos em uma fonte de dados como tabelas. Por exemplo, um driver Xbase trata cada arquivo Xbase como uma tabela.
SQL_FILE_CATALOG = Um driver de camada única trata arquivos em uma fonte de dados como um catálogo. Por exemplo, um driver do Microsoft Access trata cada arquivo do Microsoft Access como um banco de dados completo.

Um aplicativo pode usar isso para determinar como os usuários selecionarão os dados. Por exemplo, os usuários do Xbase geralmente pensam nos dados armazenados em arquivos, enquanto os usuários do ORACLE e do Microsoft Access geralmente pensam nos dados armazenados em tabelas.

Quando um usuário seleciona uma fonte de dados Xbase, o aplicativo pode exibir a caixa de diálogo comum Abrir Arquivo do Windows; quando o usuário seleciona uma fonte de dados Microsoft Access ou ORACLE, o aplicativo pode exibir uma caixa de diálogo Selecionar Tabela personalizada.
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 3.0 Uma máscara de bits SQLUINTEGER que descreve os atributos de um cursor somente de encaminhamento que são suportados pelo driver. Essa máscara de bits contém o primeiro subconjunto de atributos; Para o segundo subconjunto, consulte SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2.

As seguintes máscaras de bits são usadas para determinar quais atributos são suportados:
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

Para obter descrições dessas máscaras de bits, consulte SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (e substitua "cursor dinâmico" por "cursor somente para frente" nas descrições).
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 3.0 Uma máscara de bits SQLUINTEGER que descreve os atributos de um cursor somente de encaminhamento que são suportados pelo driver. Essa máscara de bits contém o segundo subconjunto de atributos; Para o primeiro subconjunto, consulte SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1.

As seguintes máscaras de bits são usadas para determinar quais atributos são suportados:
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

Para obter descrições dessas máscaras de bits, consulte SQL_DYNAMIC_CURSOR_ATTRIBUTES2 (e substitua "cursor dinâmico" por "cursor somente para frente" nas descrições).
SQL_GETDATA_EXTENSIONS 2,0 Uma máscara de bits SQLUINTEGER enumerando extensões para SQLGetData.

As seguintes máscaras de bits são usadas junto com o sinalizador para determinar quais extensões comuns o driver dá suporte para SQLGetData:
SQL_GD_ANY_COLUMN = SQLGetData pode ser chamado para qualquer coluna não associada, incluindo aquelas antes da última coluna associada. Observe que as colunas devem ser chamadas em ordem crescente de número de coluna, a menos que SQL_GD_ANY_ORDER também seja retornado.
SQL_GD_ANY_ORDER = SQLGetData pode ser chamado para colunas não associadas em qualquer ordem. Observe que SQLGetData pode ser chamado somente para colunas após a última coluna associada, a menos que SQL_GD_ANY_COLUMN também seja retornado.
SQL_GD_BLOCK = SQLGetData pode ser chamado para uma coluna não acoplada em qualquer linha em um bloco (em que o tamanho do conjunto de linhas é maior que 1) de dados após o posicionamento nessa linha com SQLSetPos.
SQL_GD_BOUND = SQLGetData pode ser chamado para colunas associadas, além de colunas não associadas. Um driver não pode retornar esse valor, a menos que também retorne SQL_GD_ANY_COLUMN.
SQL_GD_OUTPUT_PARAMS = SQLGetData pode ser chamado para retornar valores de parâmetro de saída. Para obter mais informações, consulte Recuperando parâmetros de saída usando SQLGetData.

SQLGetData é necessário para retornar dados somente de colunas não acopladas que ocorrem após a última coluna associada, são chamadas em ordem crescente de número de colunas e não estão em uma linha em um bloco de linhas.

Se um driver der suporte a indicadores (comprimento fixo ou comprimento variável), ele deverá dar suporte à chamada SQLGetData na coluna 0. Esse suporte é necessário independentemente do que o driver retorna para uma chamada para SQLGetInfo com o InfoType SQL_GETDATA_EXTENSIONS.
SQL_GROUP_BY 2,0 Um valor SQLUSMALLINT que especifica a relação entre as colunas na cláusula GROUP BY e as colunas não agregadas na lista de seleção:
SQL_GB_COLLATE = Uma cláusula COLLATE pode ser especificada no final de cada coluna de agrupamento. (ODBC 3.0)
SQL_GB_NOT_SUPPORTED = GROUP BY cláusulas não são suportadas. (ODBC 2.0)
SQL_GB_GROUP_BY_EQUALS_SELECT = A cláusula GROUP BY deve conter todas as colunas não agregadas na lista de seleção. Ele não pode conter nenhuma outra coluna. Por exemplo, SELECT DEPT, MAX(SALARY) FROM EMPLOYEE GROUP BY DEPT. (ODBC 2.0)
SQL_GB_GROUP_BY_CONTAINS_SELECT = A cláusula GROUP BY deve conter todas as colunas não agregadas na lista de seleção. Ele pode conter colunas que não estão na lista de seleção. Por exemplo, SELECT DEPT, MAX(SALARY) FROM EMPLOYEE GROUP BY DEPT, AGE. (ODBC 2.0)
SQL_GB_NO_RELATION = As colunas na cláusula GROUP BY e na lista de seleção não estão relacionadas. O significado de colunas não agrupadas e não agregadas na lista de seleção depende da fonte de dados. Por exemplo, SELECIONE DEPT, SALÁRIO DO GRUPO DE FUNCIONÁRIOS POR DEPT, IDADE. (ODBC 2.0)

Um driver compatível com o nível de entrada SQL-92 sempre retornará a opção SQL_GB_GROUP_BY_EQUALS_SELECT conforme compatível. Um driver compatível com o nível SQL 92 Full sempre retornará a opção SQL_GB_COLLATE conforme compatível. Se nenhuma das opções for suportada, a cláusula GROUP BY não será suportada pela fonte de dados.
SQL_IDENTIFIER_CASE 1.0 Um valor SQLUSMALLINT da seguinte maneira:
SQL_IC_UPPER = Os identificadores em SQL não diferenciam maiúsculas de minúsculas e são armazenados em maiúsculas no catálogo do sistema.
SQL_IC_LOWER = Os identificadores no SQL não diferenciam maiúsculas de minúsculas e são armazenados em minúsculas no catálogo do sistema.
SQL_IC_SENSITIVE = Os identificadores no SQL diferenciam maiúsculas de minúsculas e são armazenados em letras maiúsculas e minúsculas no catálogo do sistema.
SQL_IC_MIXED = Os identificadores no SQL não diferenciam maiúsculas de minúsculas e são armazenados em maiúsculas e minúsculas no catálogo do sistema.

Como os identificadores no SQL-92 nunca diferenciam maiúsculas de minúsculas, um driver que esteja em conformidade estritamente com o SQL-92 (qualquer nível) nunca retornará a opção SQL_IC_SENSITIVE conforme compatível.
SQL_IDENTIFIER_QUOTE_CHAR 1.0 A cadeia de caracteres usada como delimitador inicial e final de um identificador entre aspas (delimitado) em instruções SQL. (Os identificadores passados como argumentos para funções ODBC não precisam ser citados.) Se a fonte de dados não der suporte a identificadores entre aspas, um espaço em branco será retornado.

Essa cadeia de caracteres também pode ser usada para citar argumentos de função de catálogo quando o atributo de conexão SQL_ATTR_METADATA_ID é definido como SQL_TRUE.

Como o caractere de aspas do identificador no SQL-92 é as aspas duplas ("), um driver que está em conformidade estritamente com o SQL-92 sempre retornará o caractere de aspas duplas.
SQL_INDEX_KEYWORDS 3.0 Uma máscara de bits SQLUINTEGER que enumera palavras-chave na instrução CREATE INDEX que são suportadas pelo driver:
SQL_IK_NONE = Nenhuma das palavras-chave é suportada.
SQL_IK_ASC = ASC é suportada.
SQL_IK_DESC = DESC é suportada.
SQL_IK_ALL = Todas as palavras-chave são suportadas.

Para ver se há suporte para a instrução CREATE INDEX, um aplicativo chama SQLGetInfo com o tipo de informação SQL_DLL_INDEX.
SQL_INFO_SCHEMA_VIEWS 3.0 Uma máscara de bits SQLUINTEGER enumerando as exibições no INFORMATION_SCHEMA que são suportadas pelo driver. As exibições e o conteúdo de INFORMATION_SCHEMA são definidos no SQL-92.

O nível de conformidade SQL-92 ou FIPS no qual esse recurso deve ser suportado é mostrado entre parênteses ao lado de cada máscara de bits.

As seguintes máscaras de bits são usadas para determinar quais exibições são suportadas:
SQL_ISV_ASSERTIONS = Identifica as declarações do catálogo que pertencem a um determinado usuário. (Nível completo)
SQL_ISV_CHARACTER_SETS = Identifica os conjuntos de caracteres do catálogo que podem ser acessados por um determinado usuário. (Nível intermediário)
SQL_ISV_CHECK_CONSTRAINTS = Identifica as restrições CHECK que pertencem a um determinado usuário. (Nível intermediário)
SQL_ISV_COLLATIONS = Identifica os agrupamentos de caracteres para o catálogo que podem ser acessados por um determinado usuário. (Nível completo)
SQL_ISV_COLUMN_DOMAIN_USAGE = Identifica colunas para o catálogo que dependem de domínios definidos no catálogo e são de propriedade de um determinado usuário. (Nível intermediário)
SQL_ISV_COLUMN_PRIVILEGES = Identifica os privilégios em colunas de tabelas persistentes que estão disponíveis ou concedidos por um determinado usuário. (Nível transitório FIPS)
SQL_ISV_COLUMNS = Identifica as colunas de tabelas persistentes que podem ser acessadas por um determinado usuário. (Nível transitório FIPS)
SQL_ISV_CONSTRAINT_COLUMN_USAGE = Semelhante a CONSTRAINT_TABLE_USAGE exibição, as colunas são identificadas para as várias restrições que pertencem a um determinado usuário. (Nível intermediário)
SQL_ISV_CONSTRAINT_TABLE_USAGE = Identifica as tabelas que são usadas por restrições (referenciais, exclusivas e asserções) e que pertencem a um determinado usuário. (Nível intermediário)
SQL_ISV_DOMAIN_CONSTRAINTS = Identifica as restrições de domínio (dos domínios no catálogo) que podem ser acessadas por um determinado usuário. (Nível intermediário)
SQL_ISV_DOMAINS = Identifica os domínios definidos em um catálogo que podem ser acessados pelo usuário. (Nível intermediário)
SQL_ISV_KEY_COLUMN_USAGE = Identifica colunas definidas no catálogo que são restritas como chaves por um determinado usuário. (Nível intermediário)
SQL_ISV_REFERENTIAL_CONSTRAINTS = Identifica as restrições referenciais que pertencem a um determinado usuário. (Nível intermediário)
SQL_ISV_SCHEMATA = Identifica os esquemas que pertencem a um determinado usuário. (Nível intermediário)
SQL_ISV_SQL_LANGUAGES = Identifica os níveis de conformidade, as opções e os dialetos do SQL suportados pela implementação do SQL. (Nível intermediário)
SQL_ISV_TABLE_CONSTRAINTS = Identifica as restrições de tabela que pertencem a um determinado usuário. (Nível intermediário)
SQL_ISV_TABLE_PRIVILEGES = Identifica os privilégios em tabelas persistentes que estão disponíveis ou concedidos por um determinado usuário. (Nível transitório FIPS)
SQL_ISV_TABLES = Identifica as tabelas persistentes definidas em um catálogo que podem ser acessadas por um determinado usuário. (Nível transitório FIPS)
SQL_ISV_TRANSLATIONS = Identifica traduções de caracteres para o catálogo que podem ser acessadas por um determinado usuário. (Nível completo)
SQL_ISV_USAGE_PRIVILEGES = Identifica os privilégios USAGE em objetos de catálogo que estão disponíveis ou pertencem a um determinado usuário. (Nível transitório FIPS)
SQL_ISV_VIEW_COLUMN_USAGE = Identifica as colunas das quais dependem as exibições do catálogo que pertencem a um determinado usuário. (Nível intermediário)
SQL_ISV_VIEW_TABLE_USAGE = Identifica as tabelas das quais dependem as exibições do catálogo pertencentes a um determinado usuário. (Nível intermediário)
SQL_ISV_VIEWS = Identifica as tabelas visualizadas definidas neste catálogo que podem ser acessadas por um determinado usuário. (Nível transitório FIPS)
SQL_INSERT_STATEMENT 3.0 Uma máscara de bits SQLUINTEGER que indica suporte para instruções INSERT :
SQL_IS_INSERT_LITERALS
SQL_IS_INSERT_SEARCHED
SQL_IS_SELECT_INTO

Um driver compatível com o nível de entrada SQL-92 sempre retornará todas essas opções conforme suportado.
SQL_INTEGRITY 1.0 Uma cadeia de caracteres: "Y" se a fonte de dados suportar o Recurso de Aprimoramento de Integridade; "N" se isso não acontecer.

Esse infotipo foi renomeado para ODBC 3.0 do SQL_ODBC_SQL_OPT_IEF de infotipo ODBC 2.0.
SQL_KEYSET_CURSOR_ATTRIBUTES1 3.0 Uma máscara de bits SQLUINTEGER que descreve os atributos de um cursor de conjunto de chaves com suporte do driver. Essa máscara de bits contém o primeiro subconjunto de atributos; Para o segundo subconjunto, consulte SQL_KEYSET_CURSOR_ATTRIBUTES2.

As seguintes máscaras de bits são usadas para determinar quais atributos são suportados:
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

Para obter descrições dessas máscaras de bits, consulte SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (e substitua "cursor dinâmico por conjunto de chaves" por "cursor dinâmico" nas descrições).

Um driver compatível com o nível intermediário SQL-92 geralmente retornará as opções SQL_CA1_NEXT, SQL_CA1_ABSOLUTE e SQL_CA1_RELATIVE conforme compatível, pois o driver dá suporte a cursores roláveis por meio da instrução SQL FETCH inserida. No entanto, como isso não determina diretamente o suporte SQL subjacente, os cursores roláveis podem não ter suporte, mesmo para um driver compatível com o nível intermediário SQL-92.
SQL_KEYSET_CURSOR_ATTRIBUTES2 3.0 Uma máscara de bits SQLUINTEGER que descreve os atributos de um cursor de conjunto de chaves com suporte do driver. Essa máscara de bits contém o segundo subconjunto de atributos; Para o primeiro subconjunto, consulte SQL_KEYSET_CURSOR_ATTRIBUTES1.

As seguintes máscaras de bits são usadas para determinar quais atributos são suportados:
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

Para obter descrições dessas máscaras de bits, consulte SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (e substitua "cursor dinâmico por conjunto de chaves" por "cursor dinâmico" nas descrições).
SQL_KEYWORDS 2,0 Uma cadeia de caracteres que contém uma lista separada por vírgulas de todas as palavras-chave específicas da fonte de dados. Essa lista não contém palavras-chave específicas do ODBC ou palavras-chave usadas pela fonte de dados e pelo ODBC. Essa lista representa todas as palavras-chave reservadas; Aplicativos interoperáveis não devem usar essas palavras em nomes de objetos.

Para obter uma lista de palavras-chave ODBC, consulte Palavras-chave reservadas no Apêndice C: Gramática SQL. O SQL_ODBC_KEYWORDS de valor #define contém uma lista separada por vírgulas de palavras-chave ODBC.
SQL_LIKE_ESCAPE_CLAUSE 2,0 Uma cadeia de caracteres: "Y" se a fonte de dados der suporte a um caractere de escape para o caractere de porcentagem (%) e o caractere de sublinhado (_) em um predicado LIKE e o driver der suporte à sintaxe ODBC para definir um caractere de escape de predicado LIKE ; "N" caso contrário.
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 3.0 Um valor SQLUINTEGER que especifica o número máximo de instruções simultâneas ativas no modo assíncrono que o driver pode dar suporte em uma determinada conexão. Se não houver limite específico ou o limite for desconhecido, esse valor será zero.
SQL_MAX_BINARY_LITERAL_LEN 2,0 Um valor SQLUINTEGER que especifica o comprimento máximo (número de caracteres hexadecimais, excluindo o prefixo literal e o sufixo retornado por SQLGetTypeInfo) de um literal binário em uma instrução SQL. Por exemplo, o 0xFFAA literal binário tem um comprimento de 4. Se não houver comprimento máximo ou o comprimento for desconhecido, esse valor será definido como zero.
SQL_MAX_CATALOG_NAME_LEN 1.0 Um valor SQLUSMALLINT que especifica o comprimento máximo de um nome de catálogo na fonte de dados. Se não houver comprimento máximo ou o comprimento for desconhecido, esse valor será definido como zero.

Um driver compatível com o nível FIPS Full retornará pelo menos 128.

Esse infotipo foi renomeado para ODBC 3.0 do SQL_MAX_QUALIFIER_NAME_LEN de infotipo ODBC 2.0.
SQL_MAX_CHAR_LITERAL_LEN 2,0 Um valor SQLUINTEGER que especifica o comprimento máximo (número de caracteres, excluindo o prefixo literal e o sufixo retornado por SQLGetTypeInfo) de um literal de caractere em uma instrução SQL. Se não houver comprimento máximo ou o comprimento for desconhecido, esse valor será definido como zero.
SQL_MAX_COLUMN_NAME_LEN 1.0 Um valor SQLUSMALLINT que especifica o comprimento máximo de um nome de coluna na fonte de dados. Se não houver comprimento máximo ou o comprimento for desconhecido, esse valor será definido como zero.

Um driver compatível com o nível de entrada FIPS retornará pelo menos 18. Um driver compatível com o nível intermediário FIPS retornará pelo menos 128.
SQL_MAX_COLUMNS_IN_GROUP_BY 2,0 Um valor SQLUSMALLINT que especifica o número máximo de colunas permitidas em uma cláusula GROUP BY . Se não houver limite especificado ou o limite for desconhecido, esse valor será definido como zero.

Um driver compatível com o nível de entrada FIPS retornará pelo menos 6. Um driver em conformidade com o nível intermediário FIPS retornará pelo menos 15.
SQL_MAX_COLUMNS_IN_INDEX 2,0 Um valor SQLUSMALLINT que especifica o número máximo de colunas permitidas em um índice. Se não houver limite especificado ou o limite for desconhecido, esse valor será definido como zero.
SQL_MAX_COLUMNS_IN_ORDER_BY 2,0 Um valor SQLUSMALLINT que especifica o número máximo de colunas permitidas em uma cláusula ORDER BY . Se não houver limite especificado ou o limite for desconhecido, esse valor será definido como zero.

Um driver compatível com o nível de entrada FIPS retornará pelo menos 6. Um driver em conformidade com o nível intermediário FIPS retornará pelo menos 15.
SQL_MAX_COLUMNS_IN_SELECT 2,0 Um valor SQLUSMALLINT que especifica o número máximo de colunas permitidas em uma lista de seleção. Se não houver limite especificado ou o limite for desconhecido, esse valor será definido como zero.

Um driver compatível com o nível de entrada FIPS retornará pelo menos 100. Um driver compatível com o nível intermediário FIPS retornará pelo menos 250.
SQL_MAX_COLUMNS_IN_TABLE 2,0 Um valor SQLUSMALLINT que especifica o número máximo de colunas permitidas em uma tabela. Se não houver limite especificado ou o limite for desconhecido, esse valor será definido como zero.

Um driver compatível com o nível de entrada FIPS retornará pelo menos 100. Um driver compatível com o nível intermediário FIPS retornará pelo menos 250.
SQL_MAX_CONCURRENT_ACTIVITIES 1.0 Um valor SQLUSMALLINT que especifica o número máximo de instruções ativas que o driver pode dar suporte para uma conexão. Uma instrução é definida como ativa se tiver resultados pendentes, com o termo "resultados" significando linhas de uma operação SELECT ou linhas afetadas por uma operação INSERT, UPDATE ou DELETE (como uma contagem de linhas) ou se estiver em um estado NEED_DATA. Esse valor pode refletir uma limitação imposta pelo driver ou pela fonte de dados. Se não houver limite especificado ou o limite for desconhecido, esse valor será definido como zero.

Esse infotipo foi renomeado para ODBC 3.0 a partir do SQL_ACTIVE_STATEMENTS de infotipo ODBC 2.0.
SQL_MAX_CURSOR_NAME_LEN 1.0 Um valor SQLUSMALLINT que especifica o comprimento máximo de um nome de cursor na fonte de dados. Se não houver comprimento máximo ou o comprimento for desconhecido, esse valor será definido como zero.

Um driver compatível com o nível de entrada FIPS retornará pelo menos 18. Um driver compatível com o nível intermediário FIPS retornará pelo menos 128.
SQL_MAX_DRIVER_CONNECTIONS 1.0 Um valor SQLUSMALLINT que especifica o número máximo de conexões ativas que o driver pode dar suporte para um ambiente. Esse valor pode refletir uma limitação imposta pelo driver ou pela fonte de dados. Se não houver limite especificado ou o limite for desconhecido, esse valor será definido como zero.

Esse infotipo foi renomeado para ODBC 3.0 do SQL_ACTIVE_CONNECTIONS de infotipo ODBC 2.0.
SQL_MAX_IDENTIFIER_LEN 3.0 Um SQLUSMALLINT que indica o tamanho máximo em caracteres que a fonte de dados dá suporte para nomes definidos pelo usuário.

Um driver compatível com o nível de entrada FIPS retornará pelo menos 18. Um driver compatível com o nível intermediário FIPS retornará pelo menos 128.
SQL_MAX_INDEX_SIZE 2,0 Um valor SQLUINTEGER que especifica o número máximo de bytes permitidos nos campos combinados de um índice. Se não houver limite especificado ou o limite for desconhecido, esse valor será definido como zero.
SQL_MAX_PROCEDURE_NAME_LEN 1.0 Um valor SQLUSMALLINT que especifica o comprimento máximo de um nome de procedimento na fonte de dados. Se não houver comprimento máximo ou o comprimento for desconhecido, esse valor será definido como zero.
SQL_MAX_ROW_SIZE 2,0 Um valor SQLUINTEGER que especifica o comprimento máximo de uma única linha em uma tabela. Se não houver limite especificado ou o limite for desconhecido, esse valor será definido como zero.

Um driver compatível com o nível de entrada FIPS retornará pelo menos 2.000. Um driver compatível com o nível intermediário FIPS retornará pelo menos 8.000.
SQL_MAX_ROW_SIZE_INCLUDES_LONG 3.0 Uma cadeia de caracteres: "Y" se o tamanho máximo da linha retornado para o tipo de informação SQL_MAX_ROW_SIZE incluir o comprimento de todas as colunas SQL_LONGVARCHAR e SQL_LONGVARBINARY na linha; "N" caso contrário.
SQL_MAX_SCHEMA_NAME_LEN 1.0 Um valor SQLUSMALLINT que especifica o comprimento máximo de um nome de esquema na fonte de dados. Se não houver comprimento máximo ou o comprimento for desconhecido, esse valor será definido como zero.

Um driver compatível com o nível de entrada FIPS retornará pelo menos 18. Um driver compatível com o nível intermediário FIPS retornará pelo menos 128.

Esse infotipo foi renomeado para ODBC 3.0 do SQL_MAX_OWNER_NAME_LEN de infotipo ODBC 2.0.
SQL_MAX_STATEMENT_LEN 2,0 Um valor SQLUINTEGER que especifica o comprimento máximo (número de caracteres, incluindo espaço em branco) de uma instrução SQL. Se não houver comprimento máximo ou o comprimento for desconhecido, esse valor será definido como zero.
SQL_MAX_TABLE_NAME_LEN 1.0 Um valor SQLUSMALLINT que especifica o comprimento máximo de um nome de tabela na fonte de dados. Se não houver comprimento máximo ou o comprimento for desconhecido, esse valor será definido como zero.

Um driver compatível com o nível de entrada FIPS retornará pelo menos 18. Um driver compatível com o nível intermediário FIPS retornará pelo menos 128.
SQL_MAX_TABLES_IN_SELECT 2,0 Um valor SQLUSMALLINT que especifica o número máximo de tabelas permitidas na cláusula FROM de uma instrução SELECT . Se não houver limite especificado ou o limite for desconhecido, esse valor será definido como zero.

Um driver compatível com o nível de entrada FIPS retornará pelo menos 15. Um driver em conformidade com o nível intermediário FIPS retornará pelo menos 50.
SQL_MAX_USER_NAME_LEN 2,0 Um valor SQLUSMALLINT que especifica o comprimento máximo de um nome de usuário na fonte de dados. Se não houver comprimento máximo ou o comprimento for desconhecido, esse valor será definido como zero.
SQL_MULT_RESULT_SETS 1.0 Uma cadeia de caracteres: "Y" se a fonte de dados der suporte a vários conjuntos de resultados, "N" se não suportar.

Para obter mais informações sobre vários conjuntos de resultados, consulte Vários resultados.
SQL_MULTIPLE_ACTIVE_TXN 1.0 Uma cadeia de caracteres: "Y" se o driver der suporte a mais de uma transação ativa ao mesmo tempo, "N" se apenas uma transação puder estar ativa a qualquer momento.

As informações retornadas para esse tipo de informação não se aplicam no caso de transações distribuídas.
SQL_NEED_LONG_DATA_LEN 2,0 Uma cadeia de caracteres: "Y" se a fonte de dados precisar do comprimento de um valor de dados longo (o tipo de dados é SQL_LONGVARCHAR, SQL_LONGVARBINARY ou um tipo de dados específico da fonte de dados longo) antes que esse valor seja enviado para a fonte de dados, "N" se não precisar. Para obter mais informações, consulte Função SQLBindParameter e Função SQLSetPos.
SQL_NON_NULLABLE_COLUMNS 1.0 Um valor SQLUSMALLINT que especifica se a fonte de dados dá suporte a NOT NULL em colunas:
SQL_NNC_NULL = Todas as colunas devem ser anuláveis.
SQL_NNC_NON_NULL = As colunas não podem ser anuláveis. (A fonte de dados suporta o Restrição de coluna NOT NULL em instruções CREATE TABLE .)

Um driver compatível com o nível de entrada SQL-92 retornará SQL_NNC_NON_NULL.
SQL_NULL_COLLATION 2,0 Um valor SQLUSMALLINT que especifica onde os NULLs são classificados em um conjunto de resultados:
SQL_NC_END = NULLs são classificados no final do conjunto de resultados, independentemente das palavras-chave ASC ou DESC.
SQL_NC_HIGH = NULLs são classificados na extremidade superior do conjunto de resultados, dependendo das palavras-chave ASC ou DESC.
SQL_NC_LOW = NULLs são classificados na extremidade inferior do conjunto de resultados, dependendo das palavras-chave ASC ou DESC.
SQL_NC_START = NULLs são classificados no início do conjunto de resultados, independentemente das palavras-chave ASC ou DESC.
SQL_NUMERIC_FUNCTIONS 1.0 Nota: O tipo de informação foi introduzido no ODBC 1.0; Cada bitmask é rotulada com a versão em que foi introduzida.

Uma máscara de bits SQLUINTEGER enumerando as funções numéricas escalares compatíveis com o driver e a fonte de dados associada.

As seguintes máscaras de bits são usadas para determinar quais funções numéricas têm suporte:
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 Um valor SQLUINTEGER que indica o nível da interface ODBC 3*.x* com a qual o driver está em conformidade.

SQL_OIC_CORE: O nível mínimo que todos os drivers ODBC devem cumprir. Esse nível inclui elementos básicos de interface, como funções de conexão, funções para preparar e executar uma instrução SQL, funções básicas de metadados do conjunto de resultados, funções básicas de catálogo e assim por diante.
SQL_OIC_LEVEL1: Um nível que inclui a funcionalidade de nível de conformidade dos padrões principais, além de cursores roláveis, indicadores, atualizações e exclusões posicionadas e assim por diante.
SQL_OIC_LEVEL2: Um nível que inclui a funcionalidade de nível de conformidade de padrões de nível 1, além de recursos avançados, como cursores confidenciais; atualizar, excluir e atualizar por favoritos; suporte a procedimentos armazenados; funções de catálogo para chaves primárias e estrangeiras; suporte a vários catálogos; e assim por diante.

Para obter mais informações, consulte Níveis de conformidade da interface.
SQL_ODBC_VER 1.0 Uma cadeia de caracteres com a versão do ODBC com a qual o Gerenciador de Driver está em conformidade. A versão tem o formato ##.##.0000, onde os dois primeiros dígitos são a versão principal e os próximos dois dígitos são a versão secundária. Isso é implementado apenas no Gerenciador de Driver.
SQL_OJ_CAPABILITIES 2,01 Uma máscara de bits SQLUINTEGER enumerando os tipos de junções externas com suporte pelo driver e pela fonte de dados. As seguintes máscaras de bits são usadas para determinar quais tipos são suportados:
SQL_OJ_LEFT = Junções externas à esquerda são suportadas.
SQL_OJ_RIGHT = As junções externas à direita são suportadas.
SQL_OJ_FULL = Associações externas completas são suportadas.
SQL_OJ_NESTED = Associações externas aninhadas são suportadas.
SQL_OJ_NOT_ORDERED = Os nomes de coluna na cláusula ON da junção externa não precisam estar na mesma ordem que seus respectivos nomes de tabela na cláusula OUTER JOIN .
SQL_OJ_INNER = A tabela interna (a tabela direita em uma junção externa esquerda ou a tabela esquerda em uma junção externa direita) também pode ser usada em uma junção interna. Isso não se aplica a junções externas completas, que não têm uma tabela interna.
SQL_OJ_ALL_COMPARISON_OPS = O operador de comparação na cláusula ON pode ser qualquer um dos operadores de comparação ODBC. Se esse bit não estiver definido, somente o operador de comparação igual (=) poderá ser usado em junções externas.

Se nenhuma dessas opções for retornada como compatível, nenhuma cláusula de junção externa terá suporte.

Para obter informações sobre o suporte de operadores de junção relacional em uma instrução SELECT, conforme definido pelo SQL-92, consulte SQL_SQL92_RELATIONAL_JOIN_OPERATORS.
SQL_ORDER_BY_COLUMNS_IN_SELECT 2,0 Uma cadeia de caracteres: "Y" se as colunas na cláusula ORDER BY devem estar na lista de seleção; caso contrário, "N".
SQL_PARAM_ARRAY_ROW_COUNTS 3.0 Um SQLUINTEGER enumerando as propriedades do driver em relação à disponibilidade de contagens de linhas em uma execução parametrizada. Tem os seguintes valores:
SQL_PARC_BATCH = Contagens de linhas individuais estão disponíveis para cada conjunto de parâmetros. Isso é conceitualmente equivalente ao driver que gera um lote de instruções SQL, uma para cada parâmetro definido na matriz. As informações de erro estendidas podem ser recuperadas usando o campo descritor SQL_PARAM_STATUS_PTR.
SQL_PARC_NO_BATCH = Há apenas uma contagem de linhas disponível, que é a contagem de linhas cumulativa resultante da execução da instrução para toda a matriz de parâmetros. Isso é conceitualmente equivalente a tratar a instrução junto com a matriz de parâmetros completa como uma unidade atômica. Os erros são tratados da mesma forma como se uma instrução fosse executada.
SQL_PARAM_ARRAY_SELECTS 3.0 Um SQLUINTEGER enumerando as propriedades do driver em relação à disponibilidade de conjuntos de resultados em uma execução parametrizada. Tem os seguintes valores:
SQL_PAS_BATCH = Há um conjunto de resultados disponível por conjunto de parâmetros. Isso é conceitualmente equivalente ao driver que gera um lote de instruções SQL, uma para cada parâmetro definido na matriz.
SQL_PAS_NO_BATCH = Há apenas um conjunto de resultados disponível, que representa o conjunto de resultados cumulativos resultante da execução da instrução para a matriz completa de parâmetros. Isso é conceitualmente equivalente a tratar a instrução junto com a matriz de parâmetros completa como uma unidade atômica.
SQL_PAS_NO_SELECT = Um driver não permite que uma instrução de geração de conjunto de resultados seja executada com uma matriz de parâmetros.
SQL_POS_OPERATIONS 2,0 Uma máscara de bits SQLINTEGER enumerando as operações de suporte em SQLSetPos.

As máscaras de bits a seguir são usadas junto com o sinalizador para determinar quais opções têm suporte.
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 Uma cadeia de caracteres com o nome do fornecedor da fonte de dados para um procedimento; Por exemplo, "Procedimento de Banco de Dados", "Procedimento Armazenado", "Procedimento", "Pacote" ou "Consulta Armazenada".
SQL_PROCEDURES 1.0 Uma cadeia de caracteres: "Y" se a fonte de dados der suporte a procedimentos e o driver der suporte à sintaxe de invocação de procedimento ODBC; "N" caso contrário.
SQL_QUOTED_IDENTIFIER_CASE 2,0 Um valor SQLUSMALLINT da seguinte maneira:
SQL_IC_UPPER = Os identificadores entre aspas no SQL não diferenciam maiúsculas de minúsculas e são armazenados em maiúsculas no catálogo do sistema.
SQL_IC_LOWER = Os identificadores entre aspas no SQL não diferenciam maiúsculas de minúsculas e são armazenados em minúsculas no catálogo do sistema.
SQL_IC_SENSITIVE = Os identificadores entre aspas no SQL diferenciam maiúsculas de minúsculas e são armazenados em maiúsculas e minúsculas no catálogo do sistema. (Em um banco de dados compatível com SQL-92, os identificadores entre aspas sempre diferenciam maiúsculas de minúsculas.)
SQL_IC_MIXED = Os identificadores entre aspas no SQL não diferenciam maiúsculas de minúsculas e são armazenados em letras maiúsculas e minúsculas no catálogo do sistema.

Um driver compatível com o nível de entrada SQL-92 sempre retornará SQL_IC_SENSITIVE.
SQL_ROW_UPDATES 1.0 Uma cadeia de caracteres: "Y" se um cursor controlado por conjunto de chaves ou misto mantiver versões ou valores de linha para todas as linhas buscadas e, portanto, puder detectar todas as atualizações feitas em uma linha por qualquer usuário desde que a linha foi buscada pela última vez. (Isso se aplica apenas a atualizações, não a exclusões ou inserções.) O driver pode retornar o sinalizador SQL_ROW_UPDATED para a matriz de status da linha quando SQLFetchScroll é chamado. Caso contrário, "N".
SQL_SCHEMA_TERM 1.0 Uma cadeia de caracteres com o nome do fornecedor da fonte de dados para um esquema; por exemplo, "proprietário", "ID de autorização" ou "Esquema".

A cadeia de caracteres pode ser retornada em maiúsculas, minúsculas ou maiúsculas e minúsculas.

Um driver compatível com o nível de entrada SQL-92 sempre retornará "esquema".

Esse infotipo foi renomeado para ODBC 3.0 do SQL_OWNER_TERM de infotipo ODBC 2.0.
SQL_SCHEMA_USAGE 2,0 Uma máscara de bits SQLUINTEGER enumerando as instruções nas quais os esquemas podem ser usados:
SQL_SU_DML_STATEMENTS = Os esquemas são suportados em todas as instruções da Linguagem de Manipulação de Dados: SELECT, INSERT, UPDATE, DELETE e, se suportado, SELECT FOR UPDATE e instruções de atualização e exclusão posicionadas.
SQL_SU_PROCEDURE_INVOCATION = Os esquemas têm suporte na instrução de invocação do procedimento ODBC.
SQL_SU_TABLE_DEFINITION = Os esquemas são suportados em todas as instruções de definição de tabela: CREATE TABLE, CREATE VIEW, ALTER TABLE, DROP TABLE e DROP VIEW.
SQL_SU_INDEX_DEFINITION = Os esquemas têm suporte em todas as instruções de definição de índice: CREATE INDEX e DROP INDEX.
SQL_SU_PRIVILEGE_DEFINITION = Os esquemas são suportados em todas as instruções de definição de privilégio: GRANT e REVOKE.

Um driver compatível com o nível de entrada SQL-92 sempre retornará as opções SQL_SU_DML_STATEMENTS, SQL_SU_TABLE_DEFINITION e SQL_SU_PRIVILEGE_DEFINITION, conforme compatível.

Esse infotipo foi renomeado para ODBC 3.0 a partir do SQL_OWNER_USAGE de infotipo ODBC 2.0.
SQL_SCROLL_OPTIONS 1.0 Nota: O tipo de informação foi introduzido no ODBC 1.0; Cada bitmask é rotulada com a versão em que foi introduzida.

Uma máscara de bits SQLUINTEGER enumerando as opções de rolagem com suporte para cursores roláveis.

As seguintes máscaras de bits são usadas para determinar quais opções são suportadas:
SQL_SO_FORWARD_ONLY = O cursor apenas rola para frente. (ODBC 1.0)
SQL_SO_STATIC = Os dados no conjunto de resultados são estáticos. (ODBC 2.0)
SQL_SO_KEYSET_DRIVEN = O driver salva e usa as chaves para cada linha no conjunto de resultados. (ODBC 1.0)
SQL_SO_DYNAMIC = O driver mantém as chaves para cada linha no conjunto de linhas (o tamanho do conjunto de chaves é o mesmo que o tamanho do conjunto de linhas). (ODBC 1.0)
SQL_SO_MIXED = O driver mantém as chaves para cada linha no conjunto de chaves e o tamanho do conjunto de chaves é maior que o tamanho do conjunto de linhas. O cursor é controlado por conjunto de chaves dentro do conjunto de chaves e dinâmico fora do conjunto de chaves. (ODBC 1.0)

Para obter informações sobre cursores roláveis, consulte Cursores roláveis.
SQL_SEARCH_PATTERN_ESCAPE 1.0 Uma cadeia de caracteres que especifica o que o driver dá suporte como um caractere de escape que permite o uso dos metacaracteres de correspondência de padrão sublinhado (_) e sinal de porcentagem (%) como caracteres válidos em padrões de pesquisa. Esse caractere de escape se aplica somente aos argumentos de função de catálogo que dão suporte a cadeias de caracteres de pesquisa. Se essa cadeia de caracteres estiver vazia, o driver não dará suporte a um caractere de escape de padrão de pesquisa.

Como esse tipo de informação não indica suporte geral do caractere de escape no predicado LIKE, o SQL-92 não inclui requisitos para essa cadeia de caracteres.

Esse InfoType é limitado a funções de catálogo. Para obter uma descrição do uso do caractere de escape em cadeias de caracteres de padrão de pesquisa, consulte Argumentos de valor padrão.
SQL_SERVER_NAME 1.0 Uma cadeia de caracteres com o nome do servidor específico da fonte de dados real; útil quando um nome de fonte de dados é usado durante SQLConnect, SQLDriverConnect e SQLBrowseConnect.
SQL_SPECIAL_CHARACTERS 2,0 Uma cadeia de caracteres que contém todos os caracteres especiais (ou seja, todos os caracteres, exceto de a a z, de A a Z, de 0 a 9 e sublinhado) que podem ser usados em um nome de identificador, como um nome de tabela, nome de coluna ou nome de índice, na fonte de dados. Por exemplo, "#$^". Se um identificador contiver um ou mais desses caracteres, o identificador deverá ser um identificador delimitado.
SQL_SQL_CONFORMANCE 3.0 Um valor SQLUINTEGER que indica o nível de SQL-92 compatível com o driver:
SQL_SC_SQL92_ENTRY = Compatível com SQL-92 de nível de entrada.
SQL_SC_FIPS127_2_TRANSITIONAL = compatível com o nível de transição FIPS 127-2.
SQL_SC_SQL92_FULL = Compatível com SQL-92 de nível completo.
SQL_SC_ SQL92_INTERMEDIATE = Compatível com SQL-92 de nível intermediário.
SQL_SQL92_DATETIME_FUNCTIONS 3.0 Uma máscara de bits SQLUINTEGER enumerando as funções escalares datetime compatíveis com o driver e a fonte de dados associada, conforme definido no SQL-92.

As seguintes máscaras de bits são usadas para determinar quais funções de data e hora têm suporte:
SQL_SDF_CURRENT_DATE
SQL_SDF_CURRENT_TIME
SQL_SDF_CURRENT_TIMESTAMP
SQL_SQL92_FOREIGN_KEY_DELETE_RULE 3.0 Uma máscara de bits SQLUINTEGER enumerando as regras com suporte para uma chave estrangeira em uma instrução DELETE , conforme definido em SQL-92.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são compatíveis com a fonte de dados:
SQL_SFKD_CASCADE
SQL_SFKD_NO_ACTION
SQL_SFKD_SET_DEFAULT
SQL_SFKD_SET_NULL

Um driver compatível com o nível de transição FIPS sempre retornará todas essas opções conforme suportado.
SQL_SQL92_FOREIGN_KEY_UPDATE_RULE 3.0 Uma máscara de bits SQLUINTEGER enumerando as regras com suporte para uma chave estrangeira em uma instrução UPDATE , conforme definido em SQL-92.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são compatíveis com a fonte de dados:
SQL_SFKU_CASCADE
SQL_SFKU_NO_ACTION
SQL_SFKU_SET_DEFAULT
SQL_SFKU_SET_NULL

Um driver compatível com o nível SQL 92 Full sempre retornará todas essas opções conforme suportado.
SQL_SQL92_GRANT 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas com suporte na instrução GRANT , conforme definido em SQL-92.

O nível de conformidade SQL-92 ou FIPS no qual esse recurso deve ser suportado é mostrado entre parênteses ao lado de cada máscara de bits.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são compatíveis com a fonte de dados:
SQL_SG_DELETE_TABLE (Nível de entrada)
SQL_SG_INSERT_COLUMN (Nível intermediário)
SQL_SG_INSERT_TABLE (Nível de entrada)
SQL_SG_REFERENCES_TABLE (Nível de entrada)
SQL_SG_REFERENCES_COLUMN (Nível de entrada)
SQL_SG_SELECT_TABLE (Nível de entrada)
SQL_SG_UPDATE_COLUMN (Nível de entrada)
SQL_SG_UPDATE_TABLE (Nível de entrada)
SQL_SG_USAGE_ON_DOMAIN (nível de transição FIPS)
SQL_SG_USAGE_ON_CHARACTER_SET (nível de transição FIPS)
SQL_SG_USAGE_ON_COLLATION (nível de transição FIPS)
SQL_SG_USAGE_ON_TRANSLATION (nível de transição FIPS)
SQL_SG_WITH_GRANT_OPTION (Nível de entrada)
SQL_SQL92_NUMERIC_VALUE_FUNCTIONS 3.0 Uma máscara de bits SQLUINTEGER enumerando as funções escalares de valor numérico compatíveis com o driver e a fonte de dados associada, conforme definido no SQL-92.

As seguintes máscaras de bits são usadas para determinar quais funções numéricas têm suporte:
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 Uma máscara de bits SQLUINTEGER enumerando os predicados com suporte em uma instrução SELECT , conforme definido em SQL-92.

O nível de conformidade SQL-92 ou FIPS no qual esse recurso deve ser suportado é mostrado entre parênteses ao lado de cada máscara de bits.

As seguintes máscaras de bits são usadas para determinar quais opções são suportadas pela fonte de dados:
SQL_SP_BETWEEN (Nível de entrada)
SQL_SP_COMPARISON (Nível de entrada)
SQL_SP_EXISTS (Nível de entrada)
SQL_SP_IN (Nível de entrada)
SQL_SP_ISNOTNULL (Nível de entrada)
SQL_SP_ISNULL (Nível de entrada)
SQL_SP_LIKE (Nível de entrada)
SQL_SP_MATCH_FULL (Nível completo)
SQL_SP_MATCH_PARTIAL (Nível completo)
SQL_SP_MATCH_UNIQUE_FULL (Nível completo)
SQL_SP_MATCH_UNIQUE_PARTIAL (Nível completo)
SQL_SP_OVERLAPS (nível de transição FIPS)
SQL_SP_QUANTIFIED_COMPARISON (Nível de entrada)
SQL_SP_UNIQUE (Nível de entrada)
SQL_SQL92_RELATIONAL_JOIN_OPERATORS 3.0 Uma máscara de bits SQLUINTEGER enumerando os operadores de junção relacional com suporte em uma instrução SELECT , conforme definido em SQL-92.

O nível de conformidade SQL-92 ou FIPS no qual esse recurso deve ser suportado é mostrado entre parênteses ao lado de cada máscara de bits.

As seguintes máscaras de bits são usadas para determinar quais opções são suportadas pela fonte de dados:
SQL_SRJO_CORRESPONDING_CLAUSE (Nível intermediário)
SQL_SRJO_CROSS_JOIN (Nível completo)
SQL_SRJO_EXCEPT_JOIN (Nível intermediário)
SQL_SRJO_FULL_OUTER_JOIN (Nível intermediário)
SQL_SRJO_INNER_JOIN (nível de transição FIPS)
SQL_SRJO_INTERSECT_JOIN (Nível intermediário)
SQL_SRJO_LEFT_OUTER_JOIN (nível de transição FIPS)
SQL_SRJO_NATURAL_JOIN (nível de transição FIPS)
SQL_SRJO_RIGHT_OUTER_JOIN (nível de transição FIPS)
SQL_SRJO_UNION_JOIN (Nível completo)

SQL_SRJO_INNER_JOIN indica suporte para a sintaxe INNER JOIN , não para o recurso de junção interna. O suporte para a sintaxe INNER JOIN é FIPS TRANSITIONAL, enquanto o suporte para o recurso de junção interna é ENTRY.
SQL_SQL92_REVOKE 3.0 Uma máscara de bits SQLUINTEGER enumerando as cláusulas com suporte na instrução REVOKE , conforme definido em SQL-92, com suporte da fonte de dados.

O nível de conformidade SQL-92 ou FIPS no qual esse recurso deve ser suportado é mostrado entre parênteses ao lado de cada máscara de bits.

As seguintes máscaras de bits são usadas para determinar quais cláusulas são compatíveis com a fonte de dados:
SQL_SR_CASCADE (nível de transição FIPS)
SQL_SR_DELETE_TABLE (Nível de entrada)
SQL_SR_GRANT_OPTION_FOR (Nível intermediário)
SQL_SR_INSERT_COLUMN (Nível intermediário)
SQL_SR_INSERT_TABLE (Nível de entrada)
SQL_SR_REFERENCES_COLUMN (Nível de entrada)
SQL_SR_REFERENCES_TABLE (Nível de entrada)
SQL_SR_RESTRICT (nível de transição FIPS)
SQL_SR_SELECT_TABLE (Nível de entrada)
SQL_SR_UPDATE_COLUMN (Nível de entrada)
SQL_SR_UPDATE_TABLE (Nível de entrada)
SQL_SR_USAGE_ON_DOMAIN (nível de transição FIPS)
SQL_SR_USAGE_ON_CHARACTER_SET (nível de transição FIPS)
SQL_SR_USAGE_ON_COLLATION (nível de transição FIPS)
SQL_SR_USAGE_ON_TRANSLATION (nível de transição FIPS)
SQL_SQL92_ROW_VALUE_CONSTRUCTOR 3.0 Uma máscara de bits SQLUINTEGER enumerando as expressões do construtor de valor de linha com suporte em uma instrução SELECT , conforme definido em SQL-92. As seguintes máscaras de bits são usadas para determinar quais opções são suportadas pela fonte de dados:
SQL_SRVC_VALUE_EXPRESSION
SQL_SRVC_NULL
SQL_SRVC_DEFAULT
SQL_SRVC_ROW_SUBQUERY
SQL_SQL92_STRING_FUNCTIONS 3.0 Uma máscara de bits SQLUINTEGER enumerando as funções escalares de cadeia de caracteres compatíveis com o driver e a fonte de dados associada, conforme definido em SQL-92.

As seguintes máscaras de bits são usadas para determinar quais funções de cadeia de caracteres têm suporte:
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 Uma máscara de bits SQLUINTEGER enumerando as expressões de valor com suporte, conforme definido em SQL-92.

O nível de conformidade SQL-92 ou FIPS no qual esse recurso deve ser suportado é mostrado entre parênteses ao lado de cada máscara de bits.

As seguintes máscaras de bits são usadas para determinar quais opções são suportadas pela fonte de dados:
SQL_SVE_CASE (Nível intermediário)
SQL_SVE_CAST (nível de transição FIPS)
SQL_SVE_COALESCE (Nível intermediário)
SQL_SVE_NULLIF (Nível intermediário)
SQL_STANDARD_CLI_CONFORMANCE 3.0 Uma máscara de bits SQLUINTEGER enumerando o padrão ou padrões CLI com os quais o driver está em conformidade. As seguintes máscaras de bits são usadas para determinar com quais níveis o driver está em conformidade:
SQL_SCC_XOPEN_CLI_VERSION1: O driver está em conformidade com a CLI do Open Group versão 1.
SQL_SCC_ISO92_CLI: O driver está em conformidade com a ISO 92 CLI.
SQL_STATIC_CURSOR_ATTRIBUTES1 3.0 Uma máscara de bits SQLUINTEGER que descreve os atributos de um cursor estático com suporte do driver. Essa máscara de bits contém o primeiro subconjunto de atributos; Para o segundo subconjunto, consulte SQL_STATIC_CURSOR_ATTRIBUTES2.

As seguintes máscaras de bits são usadas para determinar quais atributos são suportados:
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

Para obter descrições dessas máscaras de bits, consulte SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (e substitua "cursor estático" por "cursor dinâmico" nas descrições).

Um driver compatível com o nível intermediário SQL-92 geralmente retornará as opções SQL_CA1_NEXT, SQL_CA1_ABSOLUTE e SQL_CA1_RELATIVE conforme compatível, pois o driver dá suporte a cursores roláveis por meio da instrução SQL FETCH inserida. No entanto, como isso não determina diretamente o suporte SQL subjacente, os cursores roláveis podem não ter suporte, mesmo para um driver compatível com o nível intermediário SQL-92.
SQL_STATIC_CURSOR_ATTRIBUTES2 3.0 Uma máscara de bits SQLUINTEGER que descreve os atributos de um cursor estático com suporte do driver. Essa máscara de bits contém o segundo subconjunto de atributos; Para o primeiro subconjunto, consulte SQL_STATIC_CURSOR_ATTRIBUTES1.

As seguintes máscaras de bits são usadas para determinar quais atributos são suportados:
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

Para obter descrições dessas máscaras de bits, consulte SQL_DYNAMIC_CURSOR_ATTRIBUTES2 (e substitua "cursor estático" por "cursor dinâmico" nas descrições).
SQL_STRING_FUNCTIONS 1.0 Nota: O tipo de informação foi introduzido no ODBC 1.0; Cada bitmask é rotulada com a versão em que foi introduzida.

Uma máscara de bits SQLUINTEGER enumerando as funções de cadeia de caracteres escalares compatíveis com o driver e a fonte de dados associada.

As seguintes máscaras de bits são usadas para determinar quais funções de cadeia de caracteres têm suporte:
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)

Se um aplicativo puder chamar a função escalar LOCATE com os argumentos string_exp1, string_exp2 e start , o driver retornará a SQL_FN_STR_LOCATE bitmask. Se um aplicativo puder chamar a função escalar LOCATE apenas com os argumentos string_exp1 e string_exp2 , o driver retornará a SQL_FN_STR_LOCATE_2 bitmask. Os drivers que dão suporte total à função escalar LOCATE retornam ambas as máscaras de bit.

(Para obter mais informações, consulte Funções de cadeia de caracteres no Apêndice E, "Funções escalares".)
SQL_SUBQUERIES 2,0 Uma máscara de bits SQLUINTEGER enumerando os predicados que dão suporte a subconsultas:
SQL_SQ_CORRELATED_SUBQUERIES
SQL_SQ_COMPARISON
SQL_SQ_EXISTS
SQL_SQ_INSQL_SQ_QUANTIFIED

A máscara de bits SQL_SQ_CORRELATED_SUBQUERIES indica que todos os predicados que dão suporte a subconsultas dão suporte a subconsultas correlacionadas.

Um driver compatível com o nível de entrada SQL-92 sempre retornará uma máscara de bits na qual todos esses bits estão definidos.
SQL_SYSTEM_FUNCTIONS 1.0 Uma máscara de bits SQLUINTEGER enumerando as funções escalares do sistema compatíveis com o driver e a fonte de dados associada.

As seguintes máscaras de bits são usadas para determinar quais funções do sistema são suportadas:
SQL_FN_SYS_DBNAME
SQL_FN_SYS_IFNULL
SQL_FN_SYS_USERNAME
SQL_TABLE_TERM 1.0 Uma cadeia de caracteres com o nome do fornecedor da fonte de dados para uma tabela; por exemplo, "tabela" ou "arquivo".

Essa cadeia de caracteres pode estar em maiúsculas, minúsculas ou maiúsculas e minúsculas.

Um driver compatível com o nível de entrada SQL-92 sempre retornará "tabela".
SQL_TIMEDATE_ADD_INTERVALS 2,0 Uma máscara de bits SQLUINTEGER enumerando os intervalos de carimbo de data/hora compatíveis com o driver e a fonte de dados associada para a função escalar TIMESTAMPADD.

As seguintes máscaras de bits são usadas para determinar quais intervalos são suportados:
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

Um driver compatível com o nível de transição FIPS sempre retornará uma máscara de bits na qual todos esses bits são definidos.
SQL_TIMEDATE_DIFF_INTERVALS 2,0 Uma máscara de bits SQLUINTEGER enumerando os intervalos de carimbo de data/hora compatíveis com o driver e a fonte de dados associada para a função escalar TIMESTAMPDIFF .

As seguintes máscaras de bits são usadas para determinar quais intervalos são suportados:
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

Um driver compatível com o nível de transição FIPS sempre retornará uma máscara de bits na qual todos esses bits são definidos.
SQL_TIMEDATE_FUNCTIONS 1.0 Nota: O tipo de informação foi introduzido no ODBC 1.0; Cada bitmask é rotulada com a versão em que foi introduzida.

Uma máscara de bits SQLUINTEGER enumerando as funções escalares de data e hora compatíveis com o driver e a fonte de dados associada.

As seguintes máscaras de bits são usadas para determinar quais funções de data e hora são suportadas:
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 Nota: O tipo de informação foi introduzido no ODBC 1.0; Cada valor retornado é rotulado com a versão na qual foi introduzido.

Um valor SQLUSMALLINT que descreve o suporte à transação no driver ou na fonte de dados:
SQL_TC_NONE = Transações sem suporte. (ODBC 1.0)
SQL_TC_DML = As transações podem conter apenas instruções DML (Data Manipulation Language) (SELECT, INSERT, UPDATE, DELETE). As instruções DDL encontradas em uma transação causam um erro. (ODBC 1.0)
SQL_TC_DDL_COMMIT = As transações podem conter apenas instruções DML. As instruções DDL (CREATE TABLE, DROP INDEX e assim por diante) encontradas em uma transação fazem com que a transação seja confirmada. (ODBC 2.0)
SQL_TC_DDL_IGNORE = As transações podem conter apenas instruções DML. As instruções DDL encontradas em uma transação são ignoradas. (ODBC 2.0)
SQL_TC_ALL = As transações podem conter instruções DDL e instruções DML em qualquer ordem. (ODBC 1.0)

(Como o suporte a transações é obrigatório no SQL-92, um driver compatível com SQL-92 [qualquer nível] nunca retornará SQL_TC_NONE.)
SQL_TXN_ISOLATION_OPTION 1.0 Uma máscara de bits SQLUINTEGER enumerando os níveis de isolamento de transação disponíveis no driver ou na fonte de dados.

As seguintes máscaras de bits são usadas junto com o sinalizador para determinar quais opções são suportadas:
SQL_TXN_READ_UNCOMMITTED
SQL_TXN_READ_COMMITTED
SQL_TXN_REPEATABLE_READ
SQL_TXN_SERIALIZABLE

Para obter descrições desses níveis de isolamento, consulte a descrição de SQL_DEFAULT_TXN_ISOLATION.

Para definir o nível de isolamento da transação, um aplicativo chama SQLSetConnectAttr para definir o atributo SQL_ATTR_TXN_ISOLATION. Para obter mais informações, consulte Função SQLSetConnectAttr.

Um driver compatível com o nível de entrada SQL-92 sempre retornará SQL_TXN_SERIALIZABLE conforme compatível. Um driver compatível com o nível de transição FIPS sempre retornará todas essas opções conforme suportado.
SQL_UNION 2,0 Uma máscara de bits SQLUINTEGER enumerando o suporte para a cláusula UNION :
SQL_U_UNION = A fonte de dados dá suporte à cláusula UNION .
SQL_U_UNION_ALL = A fonte de dados dá suporte à palavra-chave ALL na cláusula UNION . (SQLGetInfo retorna SQL_U_UNION e SQL_U_UNION_ALL nesse caso.)

Um driver compatível com o nível de entrada SQL-92 sempre retornará essas duas opções conforme compatível.
SQL_USER_NAME 1.0 Uma cadeia de caracteres com o nome usado em um banco de dados específico, que pode ser diferente do nome de logon.
SQL_XOPEN_CLI_YEAR 3.0 Uma cadeia de caracteres que indica o ano de publicação da especificação Open Group com a qual a versão do Gerenciador de Driver ODBC está totalmente em conformidade.

Exemplo

SQLGetInfo retorna listas de opções com suporte como uma máscara de bits SQLUINTEGER em *InfoValuePtr. A máscara de bits para cada opção é usada junto com o sinalizador para determinar se a opção tem suporte.

Por exemplo, um aplicativo pode usar o código a seguir para determinar se a função escalar SUBSTRING tem suporte do driver associado à conexão.

Para obter outro exemplo de uso de SQLGetInfo, consulte Função 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  

Retornando a configuração de um atributo de conexão
Função SQLGetConnectAttr

Determinando se um driver dá suporte a uma função
Função SQLGetFunctions

Retornando a configuração de um atributo de instrução
Função SQLGetStmtAttr

Retornando informações sobre os tipos de dados de uma fonte de dados
Função SQLGetTypeInfo

Confira também

Referência de API do ODBC
Arquivos de cabeçalho ODBC