Tipos de dados específicos do driver, tipos de descritor, tipos de informações, tipos de diagnóstico e atributos

Os drivers podem alocar valores específicos do driver ao seguinte:

  • Indicadores de tipo de dados SQL São usados em ParameterType em SQLBindParameter e em DataType no SQLGetTypeInfo e retornados por SQLColAttribute, SQLColumns, SQLDescribeCol, SQLGetTypeInfo, SQLDescribeParam, SQLProcedureColumns e SQLSpecialColumns.

  • Campos descritores São usados em FieldIdentifier em SQLColAttribute, em SQLGetDescField e em SQLSetDescField.

  • Campos de diagnóstico São usados em DiagIdentifier em SQLGetDiagField e SQLGetDiagRec.

  • Tipos de informação Eles são usados em InfoType em SQLGetInfo.

  • Atributos de conexão e instrução Eles são usados em Atributo em SQLGetConnectAttr, SQLGetStmtAttr, SQLSetConnectAttr e SQLSetStmtAttr.

Para cada um desses itens, há dois conjuntos de valores: valores reservados para uso por ODBC e valores reservados para uso por drivers. Antes de implementar valores específicos do driver, um gravador de driver deve solicitar um valor para cada tipo, campo ou atributo específico do driver do Open Group. Para o desenvolvimento de novos drivers, use o intervalo descrito na tabela abaixo. O Gerenciador de Driver do ODBC 3.8 não gerará um erro se for usado um valor desconhecido que não esteja no intervalo descrito abaixo. No entanto, versões posteriores do Gerenciador de Driver podem gerar um erro se forem recebidos valores desconhecidos que não estão no intervalo.

Quando qualquer um desses valores é passado para uma função ODBC, o driver deve verificar se o valor é válido. Os drivers retornam SQLSTATE HYC00 (recurso opcional não implementado) para valores específicos do driver que se aplicam a outros drivers.

Do ODBC 3.8 em diante, os gravadores de driver podem alocar atributos específicos do driver dentro de um intervalo reservado.

Observação

O Gerenciador de Driver do ODBC 3.8 não valida nem impõe esses intervalos para compatibilidade com versões anteriores. Porém, uma versão futura do Gerenciador de Driver poderá impô-los.

Tipo de atributo Tipo de dados ODBC Base de intervalo específica do driver Limite de intervalo específico do driver Constante ODBC para base de intervalo de valores específica do driver
Indicadores de tipo de dados SQL SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_SQL_TYPE_BASE
Campos de descritor SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_DESCRIPTOR_BASE
Campos de diagnóstico SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_DIAGNOSTIC_BASE
Tipos de informações SQLUSMALLINT 0x4000 0x7FFF SQL_DRIVER_INFO_TYPE_BASE
Atributos de conexão SQLINTEGER 0x00004000 0x00007FFF SQL_DRIVER_CONNECT_ATTR_BASE
Atributos de instrução SQLINTEGER 0x00004000 0x00007FFF SQL_DRIVER_STATEMENT_ATTR_BASE

Observação

Os tipos de dados específicos do driver, os campos de descritor, os campos de diagnóstico, os tipos de informações, os atributos de instrução e os atributos de conexão devem ser descritos na documentação do driver. Quando qualquer um desses valores é passado para uma função ODBC, o driver deve verificar se o valor é válido. Os drivers retornam SQLSTATE HYC00 (recurso opcional não implementado) para valores específicos do driver que se aplicam a outros drivers.

Os valores de base são definidos para facilitar o desenvolvimento do driver. Por exemplo, é possível definir os atributos de diagnóstico específicos do driver no seguinte formato:

SQL_DRIVER_DIAGNOSTIC_BASE+0, SQL_DRIVER_DIAGNOSTIC_BASE +1