SQLSetPos (libreria di cursori)

Importante

Questa funzionalità verrà rimossa in una versione futura di Windows. Evitare di usare questa funzionalità nelle nuove attività di sviluppo e pianificare la modifica delle applicazioni che attualmente usano questa funzionalità. Microsoft consiglia di usare la funzionalità del cursore del driver.

Questo argomento illustra l'uso della funzione SQLSetPos nella libreria di cursori. Per informazioni generali su SQLSetPos, vedere Funzione SQLSetPos.

La libreria di cursori supporta l'SQL_POSITION solo per l'argomento Operation in SQLSetPos. Supporta il valore SQL_LOCK_NO_CHANGE solo per l'argomento LockType.

Se il driver non supporta le operazioni bulk, la libreria di cursori restituisce SQLSTATE HYC00 (Driver non idoneo) quando SQLSetPos viene chiamato con RowNumber uguale a 0. Questo comportamento del driver non è consigliato.

La libreria di cursori non supporta le SQL_UPDATE e SQL_DELETE in una chiamata a SQLSetPos. La libreria di cursori implementa un'istruzione SQL di aggiornamento o eliminazione posizionata creando un'istruzione di aggiornamento o eliminazione ricercata con una clausola WHERE che enumera i valori archiviati nella cache per ogni colonna associata. Per altre informazioni, vedere Elaborazione di istruzioni Update e Delete posizionate.

Se il driver non supporta i cursori statici, un'applicazione che lavora con la libreria di cursori deve chiamare SQLSetPos solo su un set di righe recuperato da SQLExtendedFetch o SQLFetchScroll, non da SQLFetch. La libreria di cursori implementa SQLExtendedFetch e SQLFetchScroll effettuando chiamate ripetute di SQLFetch (con dimensioni del set di righe 1) nel driver. La libreria di cursori passa invece le chiamate a SQLFetch al driver. Se SQLSetPos viene chiamato su un set di righe a più righe recuperato da SQLFetch quando il driver non supporta i cursori statici, la chiamata avrà esito negativo perché SQLSetPos non funziona con i cursori forward-only. Ciò si verifica anche se un'applicazione ha chiamato correttamente SQLSetStmtAttr per impostare SQL_ATTR_CURSOR_TYPE su SQL_CURSOR_STATIC, che la libreria di cursori supporta anche se il driver non supporta i cursori statici.