Condividi tramite


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