Panoramica del Servizio cursore Microsoft per OLE DB

Il Servizio cursore Microsoft per OLE DB integra le funzioni di supporto del cursore dei provider di dati. Di conseguenza, l'utente riceve funzionalità relativamente uniformi da tutti i provider di dati.

Il servizio cursore rende disponibili le proprietà dinamiche e migliora il comportamento di determinati metodi. Ad esempio, la proprietà dinamica Optimize consente la creazione di indici temporanei per facilitare determinate operazioni, ad esempio il metodo Find.

Il servizio cursore abilita il supporto per l'aggiornamento in batch in tutti i casi. Simula anche tipi di cursori più idonei, ad esempio cursori dinamici, quando un provider di dati può fornire solo cursori meno idonei, ad esempio cursori statici.

Parola chiave

Per richiamare questo componente del servizio, impostare la proprietà CursorLocation dell'oggetto Recordset o Connectionsu adUseClient.

connection.CursorLocation=adUseClient
recordset.CursorLocation=adUseClient

Proprietà dinamiche

Quando viene richiamato il Servizio cursore per OLE DB, le proprietà dinamiche seguenti vengono aggiunte alla raccolta Properties dell'oggetto Recordset. L'elenco completo delle proprietà dinamiche dell'oggetto Connection e Recordset è elencato nell'Indice delle proprietà dinamiche ADO. I nomi delle proprietà OLE DB associati, se appropriato, vengono inclusi tra parentesi dopo il nome della proprietà ADO.

Le modifiche apportate ad alcune proprietà dinamiche non sono visibili all'origine dati sottostante dopo che il servizio cursore è stato richiamato. Ad esempio, l'impostazione della proprietà Command Timeout in un oggetto Recordset non sarà visibile al provider di dati sottostante.


Recordset1.CursorLocation = adUseClient     'invokes cursor service
Recordset1.Open "authors", _
    "Provider=SQLOLEDB;Data Source=DBServer;User Id=MyUserID;" & _
    "Password=MyPassword;Initial Catalog=pubs;",,adCmdTable
Recordset1.Properties.Item("Command Time out") = 50
' 'Command Time out' property on DBServer is still default (30).

Se l'applicazione richiede il servizio cursore, ma è necessario impostare le proprietà dinamiche nel provider sottostante, impostare le proprietà prima di richiamare il servizio cursore. Le impostazioni delle proprietà dell'oggetto Command vengono sempre passate al provider di dati sottostante, indipendentemente dalla posizione del cursore. Pertanto, è anche possibile usare un oggetto Command per impostare le proprietà in qualsiasi momento.

Nota

La proprietà dinamica DBPROP_SERVERDATAONINSERT non è supportata dal servizio cursore, anche se è supportata dal provider di dati sottostante.

Nome proprietà Descrizione
Auto Recalc (DBPROP_ADC_AUTORECALC) Per i recordset creati con il servizio di data shaping, questo valore indica la frequenza di calcolo e aggregazione delle colonne. Il valore predefinito (value=1) consiste nel ricalcolare ogni volta che il servizio di data shaping determina che i valori sono stati modificati. Se il valore è 0, le colonne calcolate o aggregate vengono calcolate solo quando viene creata inizialmente la gerarchia.
Batch Size (DBPROP_ADC_BATCHSIZE) Indica il numero di istruzioni di aggiornamento che è possibile inviare in batch prima che siano inviate all'archivio dati. Maggiore è il numero di istruzioni in un batch, minore è il numero di round trip all'archivio dati.
Cache Child Rows (DBPROP_ADC_CACHECHILDROWS) Per i recordset creati con il servizio di data shaping, questo valore indica se i recordset figlio vengono archiviati in una cache per un uso successivo.
Cursor Engine Version (DBPROP_ADC_CEVER) Indica la versione del servizio cursore in uso.
Maintain Change Status (DBPROP_ADC_MAINTAINCHANGESTATUS) Indica il testo del comando usato per la risincronizzazione di una o più righe in un join di più tabelle.
Optimize (Ottimizza) Indica se è necessario creare un indice. Se impostato su True, autorizza la creazione temporanea di indici per migliorare l'esecuzione di determinate operazioni.
Reshape Name Indica il nome dell'oggetto Recordset. È possibile fare riferimento ai comandi di data shaping correnti o successivi.
Resync Command Indica una stringa di comando personalizzata usata dal metodo Resync quando la proprietà Unique Table è attiva.
Unique Catalog Indica il nome del database contenente la tabella a cui fa riferimento la proprietà Unique Table.
Unique Schema Indica il nome del proprietario della tabella a cui fa riferimento la proprietà Unique Table.
Tabella univoca Indica il nome di una tabella in un oggetto Recordset creato da più tabelle che possono essere modificate da inserimenti, aggiornamenti o eliminazioni.
Update Criteria (DBPROP_ADC_UPDATECRITERIA) Indica i campi nella clausola WHERE usati per gestire i conflitti che si verificano durante un aggiornamento.
Update Resync (DBPROP_ADC_UPDATERESYNC) Indica se il metodo Resync viene richiamato in modo implicito dopo il metodo UpdateBatch (e il relativo comportamento), quando la proprietà Unique Table è attiva.

È anche possibile impostare o recuperare una proprietà dinamica specificandone il nome come indice nella raccolta Properties. Ad esempio, ottenere e stampare il valore corrente della proprietà dinamica Optimize, quindi impostare un nuovo valore, come indicato di seguito:

Debug.Print rs.Properties("Optimize")
rs.Properties("Optimize") = True

Comportamento predefinito delle proprietà

Il servizio cursore per OLE DB influisce anche sul comportamento di alcune proprietà predefinite.

Nome proprietà Descrizione
CursorType Integra i tipi di cursori disponibili per un oggetto Recordset.
LockType Integra i tipi di blocchi disponibili per un oggetto Recordset. Abilita gli aggiornamenti batch.
Ordinamento Indica uno o più nomi di campo in cui il Recordset è ordinato e se ogni campo è ordinato in ordine crescente o decrescente.

Comportamento del metodo

Il servizio cursore per OLE DB abilita o influisce sul comportamento del metodo Append dell'oggetto Field e dei metodi Open, Resync, UpdateBatch e Save dell'oggetto Recordset.