Comportamenti dei cursori
ODBC supporta le opzioni ISO per la specifica del comportamento dei cursori mediante lo scorrimento e la sensibilità. Tali comportamenti vengono specificati impostando le opzioni SQL_ATTR_CURSOR_SCROLLABLE e SQL_ATTR_CURSOR_SENSITIVITY su una chiamata a SQLSetStmtAttr. Il driver ODBC di SQL Server Native Client implementa queste opzioni richiedendo cursori 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 è richiesto un controllo della concorrenza ottimistica basata sulla versione su una tabella che non presenta una colonna timestamp, il server utilizza la concorrenza ottimistica basata sui valori.
Scorrimento
Quando SQL_ATTR_CURSOR_SCROLLABLE è impostato su SQL_SCROLLABLE, il cursore supporta 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.
Sensibilità
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.