Share via


Tipos de datos específicos del controlador, Descriptor tipos, tipos de información, tipos de diagnóstico y atributos

Los controladores pueden asignar valores específicos del controlador para lo siguiente:

  • Indicadores de tipos de datos SQL Se usan en ParameterType en SQLBindParameter y en DataType en SQLGetTypeInfo y los devuelven SQLColAttribute, SQLColumns, SQLDescribeCol, SQLGetTypeInfo, SQLDescribeParam, SQLProcedureColumns y SQLSpecialColumns.

  • Campos descriptores Se usan en FieldIdentifier en SQLColAttribute, SQLGetDescField y SQLSetDescField.

  • Campos de diagnóstico Se usan en DiagIdentifier en SQLGetDiagField y SQLGetDiagRec.

  • Tipos de información Se usan en InfoType en SQLGetInfo.

  • Atributos de conexión e instrucción Se usan en Attribute en SQLGetConnectAttr, SQLGetStmtAttr, SQLSetConnectAttr y SQLSetStmtAttr.

Para cada uno de estos elementos, hay dos conjuntos de valores: los valores reservados para su uso por ODBC y los valores reservados para su uso por parte de los controladores. Antes de implementar valores específicos del controlador, un escritor de controladores debe solicitar un valor para cada tipo, campo o atributo específico del controlador de grupo abierto. Para el desarrollo de nuevos controladores, use el intervalo descrito en la tabla siguiente. El Administrador de controladores ODBC 3.8 no generará un error si se usa un valor desconocido que no está en el intervalo descrito a continuación. Sin embargo, las versiones posteriores del Administrador de controladores pueden generar un error si se reciben valores desconocidos que no están en el intervalo.

Cuando se pasa cualquiera de estos valores a una función ODBC, el controlador debe comprobar si el valor es válido. Los controladores devuelven SQLSTATE HYC00 (característica opcional no implementada) para los valores específicos del controlador que se aplican a otros controladores.

A partir de ODBC 3.8, los escritores de controladores pueden asignar atributos específicos del controlador dentro de un intervalo reservado.

Nota:

El Administrador de controladores ODBC 3.8 no valida ni aplica estos intervalos para la compatibilidad con versiones anteriores. Sin embargo, una versión futura del Administrador de controladores podría aplicarlos.

Tipo de atributo Tipo de datos de ODBC Base de intervalo específico del controlador Límite de intervalo específico del controlador Constante ODBC para la base del intervalo de valores específico del controlador
Indicadores de tipo de datos SQL SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_SQL_TYPE_BASE
Campos de descriptor SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_DESCRIPTOR_BASE
Campos de diagnóstico SQLSMALLINT 0x4000 0x7FFF SQL_DRIVER_DIAGNOSTIC_BASE
Tipos de información SQLUSMALLINT 0x4000 0x7FFF SQL_DRIVER_INFO_TYPE_BASE
Atributos de conexión SQLINTEGER 0x00004000 0x00007FFF SQL_DRIVER_CONNECT_ATTR_BASE
Atributos de instrucción SQLINTEGER 0x00004000 0x00007FFF SQL_DRIVER_STATEMENT_ATTR_BASE

Nota:

Los tipos de datos específicos del controlador, los campos descriptores, los campos de diagnóstico, los tipos de información, los atributos de instrucción y los atributos de conexión deben describirse en la documentación del controlador. Cuando se pasa cualquiera de estos valores a una función ODBC, el controlador debe comprobar si el valor es válido. Los controladores devuelven SQLSTATE HYC00 (característica opcional no implementada) para los valores específicos del controlador que se aplican a otros controladores.

Los valores base se definen para facilitar el desarrollo de controladores. Por ejemplo, los atributos de diagnóstico específicos del controlador se pueden definir en el formato siguiente:

SQL_DRIVER_DIAGNOSTIC_BASE+0, SQL_DRIVER_DIAGNOSTIC_BASE +1