Condividi tramite


Comportamenti dei cursori

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)

ODBC supporta le opzioni ISO per la specifica del comportamento dei cursori mediante lo scorrimento e la sensibilità. Questi comportamenti vengono specificati impostando le opzioni SQL_ATTR_CURSOR_SCROLLABLE e SQL_ATTR_CURSOR_SENSITIVITY in una chiamata a SQLSetStmtAttr. Il driver ODBC di SQL Server Native Client implementa queste opzioni richiedendo cursori del server con le caratteristiche seguenti.

Impostazioni del comportamento del cursore Caratteristiche del cursore server richieste
SQL_SCROLLABLE e SQL_SENSITIVE Cursore gestito da keyset e concorrenza ottimistica basata sulla versione
SQL_SCROLLABLE e SQL_INSENSITIVE Cursore statico e concorrenza di sola lettura
SQL_SCROLLABLE e SQL_UNSPECIFIED Cursore statico e concorrenza di sola lettura
SQL_NONSCROLLABLE e SQL_SENSITIVE Cursore forward-only e concorrenza ottimistica basata sulla versione
SQL_NONSCROLLABLE e SQL_INSENSITIVE Set di risultati predefinito (forward only, di sola lettura)
SQL_NONSCROLLABLE e SQL_UNSPECIFIED Set di risultati predefinito (forward only, di sola lettura)

La concorrenza ottimistica basata sulla versione richiede una colonna timestamp nella tabella sottostante. Se viene richiesto il controllo della concorrenza ottimistica basata sulla versione in una tabella che non dispone di una colonna timestamp , il server usa la concorrenza ottimistica basata su valori.

Scorrimento

Quando SQL_ATTR_CURSOR_SCROLLABLE è impostato su SQL_SCROLLABLE, il cursore supporta tutti i diversi valori per il parametro FetchOrientation di SQLFetchScroll. Quando SQL_ATTR_CURSOR_SCROLLABLE è impostato su SQL_NONSCROLLABLE, il cursore supporta solo un valore FetchOrientation di SQL_FETCH_NEXT.

Riservatezza

Quando SQL_ATTR_CURSOR_SENSITIVITY è impostato su SQL_SENSITIVE, il cursore riflette le modifiche dei dati apportate dall'utente corrente di cui è stato eseguito il commit da altri utenti. Quando SQL_ATTR_CURSOR_SENSITIVITY è impostato su SQL_INSENSITIVE, il cursore non riflette le modifiche dei dati.

Vedi anche

Utilizzo delle proprietà cursori (ODBC)Cursor