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.