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 percepisce 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à recordset o ConnectionCursorLocation dell'oggetto su adUseClient.
connection.CursorLocation=adUseClient
recordset.CursorLocation=adUseClient
Proprietà dinamiche
Quando viene richiamato il servizio Cursor per OLE DB, le seguenti proprietà dinamiche vengono aggiunte alla raccolta Properties dell'oggetto Recordset . L'elenco completo delle proprietà dinamiche Connection e Recordset oggetto è 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 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=<password>;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 sul provider sottostante, impostare le proprietà prima di richiamare il servizio cursore. Le impostazioni delle proprietà dell'oggetto comando vengono sempre passate al provider di dati sottostante indipendentemente dalla posizione del cursore. Pertanto, è anche possibile usare un oggetto comando 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.
Il nome della proprietà | Descrizione |
---|---|
Ricalcolo automatico (DBPROP_ADC_AUTORECALC) | Per i recordset creati con il servizio di data shaping, questo valore indica la frequenza con cui vengono calcolate le colonne calcolate e aggregate. 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 la gerarchia viene compilata inizialmente. |
Dimensioni batch (DBPROP_ADC_BATCHSIZE) | Indica il numero di istruzioni di aggiornamento che è possibile inviare in batch prima di essere inviate all'archivio dati. Quanto maggiore è il numero di istruzioni in un batch, tanto minore è il numero di accessi all'archivio dati. |
Memorizzare nella cache le righe figlio (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 uso futuro. |
Versione del motore di cursore (DBPROP_ADC_CEVER) | Indica la versione del servizio cursore in uso. |
Mantenere lo stato delle modifiche (DBPROP_ADC_MAINTAINCHANGESTATUS) | Indica il testo del comando utilizzato per la risincronizzazione di una o più righe in un join di più tabelle. |
Ottimizza | Indica se deve essere creato un indice. Se impostato su True, autorizza la creazione temporanea di indici per migliorare l'esecuzione di determinate operazioni. |
nome della forma | Indica il nome del Recordset . È possibile fare riferimento ai comandi di modellazione dei dati correnti o successivi. |
Comando Risincronizzazione | Indica una stringa di comando personalizzata utilizzata dal metodo Resync quando è attiva la proprietà Tabella Unica. |
Catalogo Univoco | Indica il nome del database contenente la tabella a cui si fa riferimento nella proprietà tabella univoca. |
Schema Unico | Indica il nome del proprietario della tabella a cui si fa riferimento nella proprietà tabella univoca. |
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. |
Criteri di aggiornamento (DBPROP_ADC_UPDATECRITERIA) | Indica quali campi nella clausola WHERE vengono utilizzati per gestire i conflitti che si verificano durante un aggiornamento. |
Aggiorna Resinc (DBPROP_ADC_UPDATERESYNC) | Indica se il metodo Resync viene richiamato in modo implicito dopo il metodo UpdateBatch (e il comportamento di questo), quando la proprietà Tabella Unica è attiva. |
È anche possibile impostare o recuperare una proprietà dinamica specificandone il nome come indice nell'insieme 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 delle proprietà integrate
Il servizio cursore per OLE DB influisce anche sul comportamento di determinate proprietà predefinite.
Nome della proprietà | Descrizione |
---|---|
TipoCursore | Integra i tipi di cursori che sono disponibili per un Recordset . |
TipoDiBlocco | Integra i tipi di lock disponibili per un Recordset . Abilita gli aggiornamenti batch. |
Ordina | Specifica uno o più nomi di campo in base al quale viene ordinato il recordset e se ogni campo viene 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 sui metodi Open, Resync, UpdateBatche Save dell'oggetto Recordset .