Condividi tramite


Mapping di SQLGetStmtOption

Quando un'applicazione chiama SQLGetStmtOption a un driver ODBC 3.x che non lo supporta, la chiamata a

SQLGetStmtOption(hstmt, fOption, pvParam)  

il risultato sarà il seguente:

  • Se fOption indica un'opzione di istruzione definita da ODBC che restituisce una stringa, Gestione driver chiama

    SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, BufferLength, NULL)  
    
  • Se fOption indica un'opzione di istruzione definita da ODBC che restituisce un valore intero a 32 bit, Gestione driver chiama

    SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, 0, NULL)  
    
  • Se fOption indica un'opzione di istruzione definita dal driver, Gestione driver chiama

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

Nei tre casi precedenti, l'argomento StatementHandle viene impostato sul valore in hstmt, l'argomento Attribute viene impostato sul valore in fOption e l'argomento ValuePtr viene impostato sullo stesso valore di pvParam.

Per le opzioni di connessione di stringa definite da ODBC, Gestione driver imposta l'argomento BufferLength nella chiamata a SQLGetConnectAttr sulla lunghezza massima predefinita (SQL_MAX_OPTION_STRING_LENGTH); per un'opzione di connessione non di stringa, BufferLength è impostato su 0.

L'opzione di istruzione SQL_GET_BOOKMARK è stata deprecata in ODBC 3.x. Affinché un driver ODBC 3.x funzioni con applicazioni ODBC 2.x che usano SQL_GET_BOOKMARK, deve supportare SQL_GET_BOOKMARK. Affinché un driver ODBC 3.x funzioni con applicazioni ODBC 2.x , deve supportare l'impostazione di SQL_USE_BOOKMARKS su SQL_UB_ON e deve esporre segnalibri a lunghezza fissa. Se un driver ODBC 3.x supporta solo segnalibri a lunghezza variabile, non segnalibri a lunghezza fissa, deve restituire SQLSTATE HYC00 (funzionalità facoltativa non implementata) se un'applicazione ODBC 2.x tenta di impostare SQL_USE_BOOKMARKS su SQL_UB_ON.

Per un driver ODBC 3.x , Gestione driver non verifica più se Option è tra SQL_STMT_OPT_MIN e SQL_STMT_OPT_MAX o è maggiore di SQL_CONNECT_OPT_DRVR_START. Il driver deve controllare questo.