Funzionamento di Gestione driver
Nella tabella seguente viene riepilogato il mapping delle chiamate a driver ODBC 2.x e ODBC 3.x.
Funzione o attributo di istruzione |
Commenti |
---|---|
SQL_ATTR_FETCH_BOOKMARK_PTR | Punta al segnalibro da usare con SQLFetchScroll. Di seguito sono riportati i dettagli di implementazione: - Quando un'applicazione imposta questa impostazione in un driver ODBC 2.x , gestione driver ODBC 3.x la memorizza nella cache. Dereferenzia il puntatore e passa il valore al driver ODBC 2.x nell'argomento FetchOffset di SQLExtendedFetch quando SQLFetchScroll viene chiamato successivamente dall'applicazione. - Quando un'applicazione imposta questa impostazione in un driver ODBC 3.x , Gestione driver ODBC 3.x passa la chiamata al driver. |
SQL_ATTR_ROW_STATUS_PTR | Punta alla matrice di stato della riga riempita da SQLFetch, SQLFetchScroll, SQLBulkOperations e SQLSetPos. Di seguito sono riportati i dettagli di implementazione: - Quando un'applicazione imposta questa impostazione in un driver ODBC 2.x , Gestione driver ODBC 3.x memorizza nella cache il relativo valore. Passa questo valore al driver ODBC 2.x nell'argomento RowStatusArray di SQLExtendedFetch quando viene chiamato SQLFetchScroll o SQLFetch . - Quando un'applicazione imposta questa impostazione in un driver ODBC 3.x , Gestione driver ODBC 3.x passa la chiamata al driver. - Nello stato S6, se un'applicazione imposta SQL_ATTR_ROW_STATUS_PTR e quindi chiama SQLBulkOperations (con un'operazione di SQL_ADD) o SQLSetPos senza prima chiamare SQLFetch o SQLFetchScroll, viene restituito SQLSTATE HY011 (l'attributo non può essere impostato ora). |
SQL_ATTR_ROWS_FETCHED_PTR | Punta al buffer in cui SQLFetch e SQLFetchScroll restituiscono il numero di righe recuperate. Di seguito sono riportati i dettagli di implementazione: - Quando un'applicazione imposta questa impostazione in un driver ODBC 2.x , Gestione driver ODBC 3.x memorizza nella cache il relativo valore. Passa questo valore al driver ODBC 2.x nell'argomento RowCountPtr di SQLExtendedFetch quando SQLFetch o SQLFetchScroll viene chiamato dall'applicazione. - Quando un'applicazione imposta questa impostazione in un driver ODBC 3.x , Gestione driver ODBC 3.x passa la chiamata al driver. |
SQL_ATTR_ROW_ARRAY_SIZE | Imposta le dimensioni del set di righe. Di seguito sono riportati i dettagli di implementazione: - Quando un'applicazione imposta questa impostazione in un driver ODBC 2.x , Gestione driver ODBC 3.x esegue il mapping all'attributo dell'istruzione SQL_ROWSET_SIZE. - Quando un'applicazione imposta questa impostazione in un driver ODBC 3.x , Gestione driver ODBC 3.x passa la chiamata al driver. - Quando un'applicazione che usa un driver ODBC 3.x chiama SQLSetScrollOptions, SQL_ROWSET_SIZE è impostato sul valore nell'argomento RowsetSize se il driver sottostante non supporta SQLSetScrollOptions. |
SQL_ROWSET_SIZE | Imposta le dimensioni del set di righe utilizzate da SQLExtendedFetch quando SQLExtendedFetch viene chiamato da un'applicazione ODBC 2.x. Di seguito sono riportati i dettagli di implementazione: - Quando un'applicazione imposta questa impostazione, Gestione driver ODBC 3.x passa la chiamata al driver, indipendentemente dalla versione del driver. - Quando un'applicazione che usa un driver ODBC 2.x chiama SQLSetScrollOptions, SQL_ROWSET_SIZE viene impostato sul valore nell'argomento RowsetSize . |
Sqlbulkoperations | Esegue un'operazione di inserimento o un aggiornamento, un'eliminazione o un recupero tramite operazioni di segnalibro. Di seguito sono riportati i dettagli di implementazione: - Quando un'applicazione chiama SQLBulkOperations con un'operazionedi SQL_ADD in un driver ODBC 2.x, Gestione driver ODBC 3.x esegue il mapping a SQLSetPos con un'operazione di SQL_ADD. - Quando si usa un driver ODBC 2.x che non supporta SQLSetPos con un'operazione di SQL_ADD, Gestione driver ODBC 3.x non esegue il mapping di SQLSetPos con un'operazionedi SQL_ADD a SQLBulkOperations con un'operazione di SQL_ADD. Questo perché SQLBulkOperations non può essere chiamato nello stato S7, che in ODBC 2.x era l'unico stato in cui è possibile chiamare SQLSetPos. - Se l'applicazione chiama SQLBulkOperations con un'operazione di SQL_ADD in un driver ODBC 2.x prima di chiamare SQLFetchScroll, Gestione driver ODBC 3.x restituisce un errore. |
Sqlextendedfetch | Restituisce il set di righe specificato. Ad eccezione della restrizione appena annotata, Gestione driver ODBC 3.x passa le chiamate a SQLExtendedFetch al driver, indipendentemente dalla versione del driver. |
SQLFetch | Restituisce il set di righe successivo. Di seguito sono riportati i dettagli di implementazione: - Quando un'applicazione chiama SQLFetch in un driver ODBC 2.x , Gestione driver ODBC 3.x esegue il mapping a SQLExtendedFetch. L'argomento FetchOrientation di SQLExtendedFetch è impostato su SQL_FETCH_NEXT. Gestione driver usa il valore memorizzato nella cache dell'attributo dell'istruzione SQL_ATTR_ROW_STATUS_PTR per l'argomento RowStatusArray e il valore memorizzato nella cache dell'attributo dell'istruzione SQL_ATTR_ROWS_FETCHED_PTR per l'argomento RowCountPtr . - Un'applicazione ODBC 3.x può combinare chiamate a SQLFetch e SQLFetchScroll in un driver ODBC 2.x perché Gestione driver ODBC 3.x esegue il mapping di SQLFetch a SQLExtendedFetch quando un'applicazione lo chiama in un driver ODBC 2.x . - Se un driver ODBC 2.x non supporta SQLExtendedFetch, Gestione driver ODBC 3.x non esegue il mapping di SQLFetch o SQLFetchScroll a SQLExtendedFetch quando un'applicazione la chiama in tale driver. Se l'applicazione tenta di impostare SQL_ATTR_ROW_ARRAY_SIZE su un valore maggiore di 1, viene restituito SQLSTATE HYC00 (funzionalità facoltativa non implementata). - Ad eccezione delle restrizioni appena indicate, Gestione driver ODBC 3.x passa le chiamate a SQLFetch al driver, indipendentemente dalla versione del driver. |
SQLFetchScroll | Restituisce il set di righe specificato. Di seguito sono riportati i dettagli di implementazione: - Quando un'applicazione chiama SQLFetchScroll in un driver ODBC 2.x , Gestione driver ODBC 3.x esegue il mapping a SQLExtendedFetch. Usa il valore memorizzato nella cache dell'attributo dell'istruzione SQL_ATTR_ROW_STATUS_PTR per l'argomento RowStatusArray e il valore memorizzato nella cache dell'attributo dell'istruzione SQL_ATTR_ROWS_FETCHED_PTR per l'argomento RowCountPtr . Se l'argomento FetchOrientation in SQLFetchScroll è SQL_FETCH_BOOKMARK, usa il valore memorizzato nella cache dell'attributo dell'istruzione SQL_ATTR_FETCH_BOOKMARK_PTR per l'argomento FetchOffset e restituisce un errore se l'argomento FetchOffset di SQLFetchScroll non è 0. - Quando un'applicazione chiama questa operazione in un driver ODBC 3.x , Gestione driver ODBC 3.x passa la chiamata al driver. |
Sqlsetpos | Esegue varie operazioni posizionate. Gestione driver ODBC 3.x passa le chiamate a SQLSetPos al driver, indipendentemente dalla versione del driver. |
SQLSetScrollOptions | Quando Gestione driver esegue il mapping di SQLSetScrollOptions per un'applicazione che utilizza un driver ODBC 3.x che non supporta SQLSetScrollOptions, Gestione driver imposta l'opzione di istruzione SQL_ROWSET_SIZE, non l'attributo di istruzione SQL_ATTR_ROW_ARRAY_SIZE, sull'argomento RowsetSize in SQLSetScrollOption. Di conseguenza, SQLSetScrollOptions non può essere usato da un'applicazione durante il recupero di più righe da una chiamata a SQLFetch o SQLFetchScroll. Può essere usato solo quando si recuperano più righe da una chiamata a SQLExtendedFetch. |