Comparteix via


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

driver
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 es compatible[3]
Aplicación recompilada pura 2.x Compatible Compatible[1] Compatible[1] No es compatible[3]
Aplicación Unicode pura 2.x Compatible Compatible[1] Compatible[1] No compatible[3]
Pure Open Group y aplicación compatible con ISO No es compatible Compatible[2] Compatible[2] Compatible[2]
Aplicación Pure 3.0 No es compatible Compatible Compatible No es compatible[4]
Aplicación pure 3.5 No es compatible Compatible Compatible No es compatible[4]
Aplicación Pure 3.8 (o superior) No es compatible [5] No es compatible [5] Compatible No es compatible [4]
Aplicación reemplazada Compatible Compatible Compatible No es compatible[3]

[1] La aplicación debe volver a compilarse con encabezados 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 ODBC 3.5 (o posteriores) y vincular 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 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 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 tipos de datos C específicos del controlador en ODBC.

Compatibilidad del Administrador de Drivers

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

  • Asigne 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 3.8. Restablezca SQL_ATTR_ODBC_VERSION en SQL_OV_ODBC3 o SQL_OV_ODBC2, según corresponda, para corresponder al Administrador de controladores.

  • Asigne un identificador de conexión.

  • Realice 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 de C específicos del controlador. De lo contrario, no use tipos de datos de C específicos del controlador.

Tenga en cuenta que una aplicación ODBC 3.x recompilada puede utilizar características de ODBC 3.8 aparte de los tipos C específicos del controlador sin necesidad de especificar SQL_OV_ODBC3_80 para SQL_ATTR_ODBC_VERSION. Esto es similar a una aplicación ODBC 2.x recompilada utilizando 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 utilice SQLCancelHandle en las nuevas versiones de Windows, debe emplear SQLCancelHandle de forma indirecta usando LoadLibrary y GetProcAddress.

Véase también

Novedades de ODBC 3.8