Condividi tramite


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.