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.
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
chiamaIColumnsInfo::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'interfacciaICommandWithParameters
, se il provider supportaICommandWithParameters
.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 | Sì | User | Sì |
CDynamicAccessor |
Sì | No | Modelli OLE DB | No |
CDynamicParameterAccessor |
Sì | Sì | Modelli OLE DB | No |
CDynamicStringAccessor[A,W] |
Sì | No | Modelli OLE DB | No |
CManualAccessor |
Sì | Sì | User | Sì |
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.
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.