Architettura dei modelli di provider OLE DB

Origini dati e sessioni

L'architettura del provider OLE DB include un oggetto origine dati e una o più sessioni. L'oggetto origine dati è l'oggetto iniziale di cui ogni provider deve creare un'istanza. Quando un'applicazione consumer necessita di dati, crea l'oggetto origine dati per avviare il provider. L'oggetto origine dati crea un oggetto sessione (utilizzando l'interfaccia IDBCreateSession ) tramite il quale il consumer si connette all'oggetto origine dati. I programmatori ODBC possono considerare l'oggetto origine dati equivalente all'oggetto HENV e all'oggetto sessione come equivalente a HDBC.

Diagramma dell'architettura del provider.

Insieme ai file di origine creati dalla Creazione guidata provider OLE DB, i modelli OLE DB implementano un oggetto origine dati. Una sessione è un oggetto che corrisponde all'oggetto OLE DB TSession.

Interfacce obbligatorie e facoltative

I modelli di provider OLE DB forniscono implementazioni preconfezionate per tutte le interfacce necessarie. Le interfacce obbligatorie e facoltative sono definite da OLE DB per diversi tipi di oggetti:

I modelli di provider OLE DB non implementano gli oggetti riga e archiviazione.

Nella tabella seguente sono elencate le interfacce obbligatorie e facoltative per gli oggetti elencati in precedenza, in base alla documentazione di OLE DB 2.6 SDK.

Componente Interfaccia Commento
Origine dati (CDataSource) [obbligatorio] IDBCreateSession

[obbligatorio] IDBInitialize

[obbligatorio] IDBProperties

[obbligatorio] IPersist

[facoltativo] IConnectionPointContainer

[facoltativo] IDBAsynchStatus

[facoltativo] IDBDataSourceAdmin

[facoltativo] IDBInfo

[facoltativo] IPersistFile

[facoltativo] ISupportErrorInfo
Connessione dal consumer al provider. L'oggetto viene usato per specificare le proprietà sulla connessione, ad esempio ID utente, password e nome origine dati. L'oggetto può essere usato anche per amministrare un'origine dati (creazione, aggiornamento, eliminazione, tabelle e così via).
Sessione (CSession) [obbligatorio] IGetDataSource

[obbligatorio] IOpenRowset

[obbligatorio] ISessionProperties

[facoltativo] IAlterIndex

[facoltativo] IAlterTable

[facoltativo] IBindResource

[facoltativo] ICreateRow

[facoltativo] IDBCreateCommand

[facoltativo] IDBSchemaRowset

[facoltativo] IIndexDefinition

[facoltativo] ISupportErrorInfo

[facoltativo] ITableCreation

[facoltativo] ITableDefinition

[facoltativo] ITableDefinitionWithConstraints

[facoltativo] ITransaction

[facoltativo] ITransactionJoin

[facoltativo] ITransactionLocal

[facoltativo] ITransactionObject
L'oggetto sessione è una singola conversazione tra un consumer e un provider. È simile a ODBC HSTMT in quanto possono essere attive molte sessioni simultanee.

L'oggetto sessione è il collegamento principale per accedere alla funzionalità OLE DB. Per accedere a un oggetto command, transaction o rowset, si passa attraverso l'oggetto sessione.
Set di righe (CRowset) [obbligatorio] IAccessor

[obbligatorio] IColumnsInfo

[obbligatorio] IConvertType

[obbligatorio] IRowset

[obbligatorio] IRowsetInfo

[facoltativo] IChapteredRowset

[facoltativo] IColumnsInfo2

[facoltativo] IColumnsRowset

[facoltativo] IConnectionPointContainer

[facoltativo] IDBAsynchStatus

[facoltativo] IGetRow

[facoltativo] IRowsetChange

[facoltativo] IRowsetChapterMember

[facoltativo] IRowsetCurrentIndex

[facoltativo] IRowsetFind

[facoltativo] IRowsetIdentity

[facoltativo] IRowsetIndex

[facoltativo] IRowsetLocate

[facoltativo] IRowsetRefresh

[facoltativo] IRowsetScroll

[facoltativo] IRowsetUpdate

[facoltativo] IRowsetView

[facoltativo] ISupportErrorInfo

[facoltativo] IRowsetBookmark
L'oggetto set di righe è costituito dai dati dell'origine dati. L'oggetto viene usato per le associazioni dei dati e per le operazioni di base (aggiornamento, recupero, spostamento e altri) sui dati. Si dispone sempre di un oggetto set di righe per conservare e modificare i dati.
Comando (CCommand) [obbligatorio] IAccessor

[obbligatorio] IColumnsInfo

[obbligatorio] ICommand

[obbligatorio] ICommandProperties

[obbligatorio] ICommandText

[obbligatorio] IConvertType

[facoltativo] IColumnsRowset

[facoltativo] ICommandPersist

[facoltativo] ICommandPrepare

[facoltativo] ICommandWithParameters

[facoltativo] ISupportErrorInfo

[facoltativo] ICommandStream
L'oggetto comando gestisce le operazioni sui dati, ad esempio le query. Può gestire istruzioni con parametri o non con parametri.

L'oggetto comando è anche responsabile della gestione delle associazioni per i parametri e le colonne di output. Un'associazione è una struttura che contiene informazioni sulla modalità di recupero di una colonna in un set di righe. Contiene informazioni come ordinale, tipo di dati, lunghezza e stato.
Transazione (facoltativo) [obbligatorio] IConnectionPointContainer

[obbligatorio] ITransaction

[facoltativo] ISupportErrorInfo
L'oggetto transazione definisce un'unità atomica di lavoro in un'origine dati e determina il modo in cui tali unità di lavoro sono correlate tra loro. Questo oggetto non è supportato direttamente dai modelli di provider OLE DB, ovvero si crea un oggetto personalizzato.

Per ulteriori informazioni, vedi gli argomenti seguenti:

Vedi anche

Modelli di provider OLE DB
Interfacce OLE DB