Cursori OLE DB (SQL Server Compact)
Microsoft SQL Server Compact 3.5 supporta i tipi di cursori per tabelle di base, forward-only e scorrevoli. Quando si utilizza uno qualsiasi di questi cursori supportati, nel client è possibile tenere aperta una sola riga.
Cursore per tabelle di base
Il cursore per tabelle di base è il più veloce dei cursori supportati e l'unico in grado di interagire direttamente con il motore di archiviazione. Questo cursore supporta aggiornamenti, segnalibri e indici, oltre ai metodi Seek e SetRange di IRowsetIndex. Il cursore per tabelle di base offre il supporto facoltativo della modalità di aggiornamento posticipato mediante la visualizzazione dell'interfaccia IRowsetUpdate quando il client passa DBPROP_IRowsetUpdate come TRUE. Questo cursore dispone di appartenenza dinamica. Le proprietà DBPROP_OTHERINSERT e DBPROP_OTHERUPDATEDELETE sono TRUE.
I cursori per tabelle di base possono essere aperti solo tramite IOpenRowset::OpenRowset. L'utilizzo di "SELECT * FROM tabella" genera un cursore di tipo Query Processor, forward-only o scorrevole e non un cursore per tabelle di base. Gli aggiornamenti sono supportati esclusivamente dai cursori per tabelle di base.
Cursore forward-only
Sebbene il tipo forward-only di sola lettura sia il più veloce cursore Query Processor e il secondo più veloce in generale, questo cursore offre il minor numero di funzionalità e non supporta segnalibri o aggiornamenti.
Cursore scorrevole
Il cursore scorrevole di sola lettura è il cursore Query Processor dotato del maggior numero di funzionalità. Il set di risultati di questo cursore viene memorizzato nella cache. Questo consente di riavviare il cursore più rapidamente, ma aumenta l'utilizzo delle risorse da parte del cursore stesso, soprattutto in caso di query con set di risultati di notevoli dimensioni. Poiché i risultati vengono memorizzati nella cache, le modifiche apportate alle tabelle di base sottostanti relative a una query non sono riportate nei risultati di tale query, a meno che questa venga rieseguita.
Impostazioni obbligatorie delle proprietà
Nella tabella seguente sono riportate le impostazioni obbligatorie delle proprietà per i singoli tipi di cursore.
Impostazione proprietà | Per tabelle di base | Forward-only | Scorrevole |
---|---|---|---|
DBPROP_BOOKMARKS |
VARIANT_TRUE |
VARIANT_FALSE |
VARIANT_TRUE |
DBPROP_OWNUPDATEDDELETE |
VARIANT_TRUE |
VARIANT_FALSE |
VARIANT_FALSE |
DBPROP_OWNINSERT |
VARIANT_TRUE |
VARIANT_FALSE |
VARIANT_FALSE |
DBPROP_OTHERUPDATEDELETE |
VARIANT_TRUE |
VARIANT_FALSE |
VARIANT_FALSE |
DBPROP_OTHERINSERT |
VARIANT_TRUE |
VARIANT_FALSE |
VARIANT_FALSE |
DBPROP_CANFETCHBACKWARDS |
VARIANT_TRUE |
VARIANT_FALSE |
VARIANT_TRUE |
DBPROP_QUICKRESTART |
VARIANT_TRUE |
VARIANT_FALSE |
VARIANT_TRUE |