Compartir por


Matriz de compatibilidad

En la tabla siguiente se describe la compatibilidad de los tipos de aplicaciones y controladores definidos anteriormente en esta sección.

Tipo de aplicación

y versión
ODBC de 32 bits

Controlador 2.x
ODBC 3.x

controlador
Controlador ODBC 3.8 Controlador compatible con ISO y Open Group
Aplicación de 16 bits, cualquier versión Compatible Compatible Compatible Compatible
Aplicación Pure 2.x Compatible Compatible Compatible No compatible[3]
Aplicación Pure 2.x recompilada Compatible Compatible[1] Compatible[1] No compatible[3]
Aplicación Pure 2.x Unicode Compatible Compatible[1] Compatible[1] No compatible[3]
Aplicación Pure compatible con Open Group e ISO No compatible Compatible[2] Compatible[2] Compatible[2]
Aplicación Pure 3.0 No compatible Compatible Compatible No compatible[4]
Aplicación Pure 3.5 No compatible Compatible Compatible No compatible[4]
Aplicación Pure 3.8 (o superior) No compatible [5] No compatible [5] Compatible No compatible [4]
Aplicación reemplazada Compatible Compatible Compatible No compatible[3]

[1] La aplicación debe volver a compilarse con encabezados de ODBC 3.5 (o posteriores) con la opción UNICODE (si es una aplicación Unicode) y debe establecer ODBCVER en 0x0250.

[2] La aplicación debe compilarse con encabezados de ODBC 3.5 (o posteriores) y vincularse con el Administrador de controladores ODBC. También debe establecer la marca de encabezado ODBC_STD.

[3] Esta configuración puede no funcionar porque hay características en ODBC 2.x que no están en los estándares, como los marcadores.

[4] Esta configuración puede no funcionar porque hay características en ODBC 3.x que no están en los estándares, como los marcadores.

[5] Esta configuración puede producir un error porque hay características en ODBC 3.8 que no están en controladores ODBC 2.x o 3.x, como los tipos de datos C específicos del controlador en ODBC.

Compatibilidad del Administrador de controladores

Una aplicación de ODBC 3.0 que debe funcionar con todas las versiones del Administrador de controladores debe hacer lo siguiente al iniciarse:

  • Asignar un identificador de entorno.

  • Establezca el atributo de entorno SQL_ATTR_ODBC_VERSION en SQL_OV_ODBC3_80. Si el Administrador de controladores devuelve SQL_ERROR, el Administrador de controladores es anterior a la versión 3.8. Restablezca SQL_ATTR_ODBC_VERSION en SQL_OV_ODBC3 o SQL_OV_ODBC2, según corresponda, para corresponder al Administrador de controladores.

  • Asignar un identificador de conexión.

  • Establecer una conexión.

  • Llame a SQLGetInfo para SQL_DRIVER_ODBC_VER para determinar la versión del controlador. Si el controlador es un controlador ODBC 3.8, puede usar tipos C específicos del controlador. De lo contrario, no use tipos de datos C específicos del controlador.

Tenga en cuenta que una aplicación de ODBC 3.x recompilada puede usar características de ODBC 3.8 distintas de los tipos C específicos del controlador sin especificar SQL_OV_ODBC3_80 para SQL_ATTR_ODBC_VERSION. Esto es similar a una aplicación de ODBC 2.x recompilada mediante características de ODBC 3.x.

Uso de SQLCancelHandle en una aplicación compatible con todos los Administradores de controladores

Dado que la función SQLCancelHandle no es compatible con los Administradores de controladores que se publicaron antes de Windows 7, una aplicación no se puede cargar en versiones anteriores de Windows si llama directamente a SQLCancelHandle. Para que una aplicación funcione con todas las versiones de los Administradores de controladores y use SQLCancelHandle en las nuevas versiones de Windows, debe llamar a SQLCancelHandle indirectamente mediante LoadLibrary y GetProcAddress.

Consulte también

Novedades de ODBC 3.8