Funzioni di accesso e rowset

Per impostare e recuperare dati, i modelli OLE DB usano una funzione di accesso e un set di righe tramite la classe CAccessorRowset . Questa classe può gestire più funzioni di accesso di tipi diversi.

Tipi di funzioni di accesso

Tutte le funzioni di accesso derivano da CAccessorBase. CAccessorBase fornisce sia il parametro che l'associazione di colonne.

Nella figura seguente vengono illustrati i tipi di funzione di accesso.

Diagramma che mostra le relazioni tra i tipi di funzione di accesso.
Classi di funzioni di accesso

  • CAccessor Usare questa funzione di accesso quando si conosce la struttura dell'origine del database in fase di progettazione. CAccessor associa in modo statico un record di database, che contiene il buffer, all'origine dati.

  • CDynamicAccessor Usare questa funzione di accesso quando non si conosce la struttura del database in fase di progettazione. CDynamicAccessor chiama IColumnsInfo::GetColumnInfo per ottenere le informazioni sulla colonna del database. Crea e gestisce una funzione di accesso e il buffer.

  • CDynamicParameterAccessor Usare questa funzione di accesso per gestire i tipi di comando sconosciuti. Quando si preparano i comandi, CDynamicParameterAccessor è possibile ottenere informazioni sui parametri dall'interfaccia ICommandWithParameters , se il provider supporta ICommandWithParameters.

  • CDynamicStringAccessor, CDynamicStringAccessorA e CDynamicStringAccessorW Usare queste classi quando non si ha alcuna conoscenza dello schema del database. CDynamicStringAccessorA recupera i dati come stringhe ANSI; CDynamicStringAccessorW recupera i dati come stringhe Unicode.

  • CManualAccessor Con questa classe è possibile usare i tipi di dati desiderati se il provider può convertire il tipo. Gestisce sia le colonne dei risultati che i parametri dei comandi.

Nella tabella seguente viene riepilogato il supporto nei tipi di funzioni di accesso modello OLE DB.

Tipo di funzione di accesso Dinamico Gestisce i parametri Buffer Più funzioni di accesso
CAccessor No User
CDynamicAccessor No Modelli OLE DB No
CDynamicParameterAccessor Modelli OLE DB No
CDynamicStringAccessor[A,W] No Modelli OLE DB No
CManualAccessor User

Tipi di rowset

I modelli OLE DB supportano tre tipi di set di righe (vedere la figura precedente): set di righe singoli (implementati da CRowset), set di righe bulk (implementati da CBulkRowset) e set di righe di matrice (implementati da CArrayRowset). I singoli set di righe recuperano un singolo handle di riga quando MoveNext viene chiamato. I set di righe bulk possono recuperare più handle di riga. I set di righe di matrice sono set di righe a cui è possibile accedere usando la sintassi della matrice.

Nella figura seguente vengono illustrati i tipi di set di righe.

Diagramma che mostra le relazioni tra i tipi di set di righe.
Classi del set di righe

I set di righe dello schema non accedono ai dati nell'archivio dati, ma accedono invece alle informazioni sull'archivio dati, denominate metadati. I set di righe dello schema vengono in genere usati in situazioni in cui la struttura del database non è nota in fase di compilazione e deve essere ottenuta in fase di esecuzione.

Vedi anche

Modelli di consumer OLE DB