Asignación de SQLSetConnectOption

Cuando un ODBC 2. La aplicación x llama a SQLSetConnectOption a través de un controlador ODBC 3*.x*, la llamada a

SQLSetConnectOption(hdbc, fOption, vParam)  

dará como resultado lo siguiente:

  • Si fOption indica un atributo de conexión definido por ODBC que requiere una cadena, el Administrador de controladores llama a .

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, SQL_NTS)  
    
  • Si fOption indica un atributo de conexión definido por ODBC que devuelve un valor entero de 32 bits, el Administrador de controladores llama a .

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, 0)  
    
  • Si fOption indica un atributo de conexión definido por el controlador, el Administrador de controladores llama a .

    SQLSetConnectAttr(ConnectionHandle, Attribute, ValuePtr, BufferLength)  
    

En los tres casos anteriores, el argumento ConnectionHandle se establece en el valor de hdbc, el argumento Attribute se establece en el valor de fOption y el argumento ValuePtr se establece en el mismo valor que vParam.

Dado que el Administrador de controladores no sabe si el atributo de conexión definido por el controlador necesita un valor entero de cadena o de 32 bits, tiene que pasar un valor válido para el argumento BufferLength de SQLSetConnectAttr. Si el controlador ha definido semántica especial para los atributos de conexión definidos por el controlador y debe llamarse mediante SQLSetConnectOption, debe admitir SQLSetConnectOption.

Si es ODBC 2. La aplicación x llama a SQLSetConnectOption para establecer una opción de instrucción específica del controlador en un controlador ODBC 3*.x* y la opción se definió en un ODBC 2. X versión del controlador, se debe definir una nueva constante de manifiesto para la opción en el controlador ODBC 3*.x*. Si la constante de manifiesto anterior se usa en la llamada a SQLSetConnectOption, el Administrador de controladores llamará a SQLSetConnectAttr con el argumento StringLength establecido en 0.

Para un controlador ODBC 3*.x*, el Administrador de controladores ya no comprueba si fOption está entre SQL_CONN_OPT_MIN y SQL_CONN_OPT_MAX, o es mayor que SQL_CONNECT_OPT_DRVR_START.

Establecer opciones de instrucción en el nivel de conexión

En ODBC 2. x, una aplicación podría llamar a SQLSetConnectOption para establecer una opción de instrucción. Cuando termine, el controlador establece la opción de instrucción como valor predeterminado para las instrucciones asignadas posteriormente para esa conexión. Se define el controlador si el controlador establece la opción de instrucción para las instrucciones existentes asociadas a la conexión especificada.

Esta capacidad ha quedado en desuso en ODBC 3*.x*. Los controladores ODBC 3*.x* solo necesitan admitir la configuración de ODBC 2. Atributos de instrucción x en el nivel de conexión si quieren trabajar con ODBC 2. x aplicaciones que lo hacen. Las aplicaciones ODBC 3*.x* nunca deben establecer atributos de instrucción en el nivel de conexión. Los atributos de instrucción ODBC 3*.x* no se pueden establecer en el nivel de conexión, a excepción de los atributos de SQL_ATTR_METADATA_ID y SQL_ATTR_ASYNC_ENABLE, que son atributos de conexión y atributos de instrucción, y se pueden establecer en el nivel de conexión o en el nivel de instrucción.