Condividi tramite


Funzioni di accesso e rowset

Per impostare e recuperare dati, i modelli OLE DB utilizzano una funzione di accesso e un rowset tramite la classe CAccessorRowset. Questa classe è in grado di gestire più funzioni di accesso di tipi diversi.

Tipi di funzioni di accesso

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

Nella figura riportata di seguito sono illustrati i tipi di funzioni di accesso.

Classi delle funzioni di accesso

Tipi di funzioni di accesso

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

  • CDynamicAccessor   Utilizzare questa funzione di accesso quando non si conosce la struttura dell'origine del database in fase di progettazione. CDynamicAccessor chiama IColumnsInfo::GetColumnInfo per ottenere le informazioni sulle colonne del database. Questa classe crea e gestisce una funzione di accesso e il buffer.

  • CDynamicParameterAccessor   Funzione di accesso da utilizzare per gestire tipi di comandi sconosciuti. Quando si preparano i comandi, CDynamicParameterAccessor è in grado di ottenere informazioni sui parametri dall'interfaccia ICommandWithParameters, se il provider supporta ICommandWithParameters.

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

  • CManualAccessor   Con questa classe è possibile utilizzare tutti i tipi di dati, se il provider è in grado di effettuare la conversione dei tipi. Questa classe gestisce sia le colonne di risultati che i parametri dei comandi.

Nella tabella riportata di seguito sono riepilogate le caratteristiche di supporto delle funzioni di accesso dei modelli OLE DB.

Tipo di funzione di accesso

Dynamic

Gestione parametri

Buffer

Più funzioni di accesso

CAccessor

No

Utente

CDynamicAccessor

No

Modelli OLE DB

No

CDynamicParameterAccessor

Modelli OLE DB

No

CDynamicStringAccessor[A,W]

No

Modelli OLE DB

No

CManualAccessor

Utente

Tipi di rowset

I modelli OLE DB supportano tre tipi di rowset, come si può vedere nella figura precedente: i rowset singoli, implementati da CRowset, i rowset di massa, implementati da CBulkRowset, e i rowset matrice, implementati da CArrayRowset. I rowset singoli recuperano un solo handle di riga quando si chiama MoveNext. I rowset di massa possono recuperare più handle di riga. I rowset matrice sono rowset a cui è possibile accedere tramite la sintassi delle matrici.

Nella figura riportata di seguito sono illustrati i tipi di rowset.

Classi dei rowset

Grafica RowsetType

I rowset dello schema non accedono ai dati nell'archivio dati, ma alle informazioni sull'archivio dati stesso, denominate metadati. I rowset dello schema vengono in genere utilizzati in situazioni in cui la struttura del database non è conosciuta in fase di compilazione e deve essere recuperata in fase di esecuzione.

Vedere anche

Concetti

Modelli consumer OLE DB (C++)