Compartir a través de


Asignación de SQLGetStmtOption

Cuando una aplicación llama a SQLGetStmtOption a un controlador ODBC 3.x que no lo admite, la llamada a

SQLGetStmtOption(hstmt, fOption, pvParam)  

dará como resultado lo siguiente:

  • Si fOption indica una opción de instrucción definida por ODBC que devuelve una cadena, el Administrador de controladores llama a .

    SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, BufferLength, NULL)  
    
  • Si fOption indica una opción de instrucción definida por ODBC que devuelve un valor entero de 32 bits, el Administrador de controladores llama a .

    SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, 0, NULL)  
    
  • Si fOption indica una opción de instrucción definida por el controlador, el Administrador de controladores llama a .

    SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, BufferLength, NULL)  
    

En los tres casos anteriores, el argumento StatementHandle se establece en el valor de hstmt, el argumento Attribute se establece en el valor de fOption y el argumento ValuePtr se establece en el mismo valor que pvParam.

Para las opciones de conexión de cadena definidas por ODBC, el Administrador de controladores establece el argumento BufferLength en la llamada a SQLGetConnectAttr en la longitud máxima predefinida (SQL_MAX_OPTION_STRING_LENGTH); para una opción de conexión que no es de cadena, BufferLength se establece en 0.

La opción de instrucción SQL_GET_BOOKMARK ha quedado en desuso en ODBC 3.x. Para que un controlador ODBC 3.x funcione con aplicaciones ODBC 2.x que usan SQL_GET_BOOKMARK, debe admitir SQL_GET_BOOKMARK. Para que un controlador ODBC 3.x funcione con aplicaciones ODBC 2.x , debe admitir la configuración de SQL_USE_BOOKMARKS en SQL_UB_ON y debe exponer marcadores de longitud fija. Si un controlador ODBC 3.x solo admite marcadores de longitud variable, no marcadores de longitud fija, debe devolver SQLSTATE HYC00 (característica opcional no implementada) si una aplicación ODBC 2.x intenta establecer SQL_USE_BOOKMARKS en SQL_UB_ON.

Para un controlador ODBC 3.x , el Administrador de controladores ya no comprueba si Option está entre SQL_STMT_OPT_MIN y SQL_STMT_OPT_MAX o es mayor que SQL_CONNECT_OPT_DRVR_START. El controlador debe comprobarlo.