A arquitetura de modelo do provedor OLE DB

Fontes de dados e as sessões

A arquitetura do provedor OLE DB inclui um fonte de dados objeto e uma ou mais sessões.O fonte de dados é o objeto inicial deve criar uma instância de cada provedor.Quando um aplicativo do cliente precisa de dados, ele co-creates o fonte de dados objeto para iniciar o provedor.O fonte de dados objeto cria um objeto de sessão (usando o IDBCreateSession interface) através do qual o cliente se conecta ao fonte de dados objeto.sistema autônomo programadores do ODBC podem considerar sistema autônomo dados objeto de fonte sistema autônomo sendo equivalente a HENV e a sessão de objeto sistema autônomo equivalente a HDBC.

Juntamente com os arquivos de origem criados pelo assistente provedor OLE DB, os modelos OLE DB implementam um objeto de fonte de dados.Uma sessão é um objeto que corresponde do OLE DB de TSession.

Interfaces obrigatórias e opcionais

O provedor OLE DB modelos oferecem implementações previamente incluídas em pacotes para todas as interfaces necessárias.Interfaces obrigatórias e opcionais são definidos pelo OLE DB para vários tipos de objetos:

Observe que os modelos de provedor do OLE DB não implementam os objetos de linha e de armazenamento.

A tabela a seguir lista interfaces obrigatórias e opcionais para os objetos listados acima, de acordo com o OLE DB 2.6 SDK Documentation.

Componente

Interface

Comment

Fonte de dados (CDataSource)

[obrigatório] IDBCreateSession

[obrigatório] IDBInitialize

[obrigatório] IDBProperties

[obrigatório] IPersist

[opcional] IConnectionPointContainer

[opcional] IDBAsynchStatus

[opcional] IDBDataSourceAdmin

[opcional] IDBInfo

[opcional] IPersistFile

[opcional] ISupportErrorInfo

Conexão do consumidor com o provedor.O objeto é usado para especificar sistema autônomo propriedades da conexão, sistema autônomo nome de fonte de dados, senha e ID de usuário.O objeto também pode ser usado para administrar uma fonte de dados (criar, atualizar, excluir, tabelas e assim por diante).

Sessão (CSession)

[obrigatório] IGetDataSource

[obrigatório] IOpenRowset

[obrigatório] ISessionProperties

[opcional] IAlterIndex

[opcional] IAlterTable

[opcional] IBindResource

[opcional] ICreateRow

[opcional] IDBCreateCommand

[opcional] IDBSchemaRowset

[opcional] IIndexDefinition

[opcional] ISupportErrorInfo

[opcional] ITableCreation

[opcional] ITableDefinition

[opcional] ITableDefinitionWithConstraints

[opcional] ITransaction

[opcional] ITransactionJoin

[opcional] ITransactionLocal

[opcional] ITransactionObject

O objeto de sessão representa uma única conversação entre um consumidor e provedor.É um pouco semelhante à ODBC HSTMT no que há pode ser muitas sessões simultâneas ativas.

O objeto de sessão é o link principal para obter a funcionalidade de banco de dados OLE DB.Para obter um comando, transação ou objeto de conjunto de linhas, você usar o objeto da sessão.

Conjunto de linhas (CRowset)

[obrigatório] IAccessor

[obrigatório] IColumnsInfo

[obrigatório] IConvertType

[obrigatório] IRowset

[obrigatório] IRowsetInfo

[opcional] IChapteredRowset

[opcional] IColumnsInfo2

[opcional] IColumnsRowset

[opcional] IConnectionPointContainer

[opcional] IDBAsynchStatus

[opcional] IGetRow

[opcional] IRowsetChange

[opcional] IRowsetChapterMember

[opcional] IRowsetCurrentIndex

[opcional] IRowsetFind

[opcional] IRowsetIdentity

[opcional] IRowsetIndex

[opcional] IRowsetLocate

[opcional] IRowsetRefresh

[opcional] IRowsetScroll

[opcional] IRowsetUpdate

[opcional] IRowsetView

[opcional] ISupportErrorInfo

[opcional] IRowsetBookmark

O objeto de conjunto de linhas representa os dados da fonte de dados.O objeto é responsável pelas ligações de dados e qualquer operações básicas (atualização, busca, movimentação e outros) nos dados.Você sempre terá um objeto de conjunto de linhas para conter e manipular dados.

Comando (CCommand)

[obrigatório] IAccessor

[obrigatório] IColumnsInfo

[obrigatório] ICommand

[obrigatório] ICommandProperties

[obrigatório] ICommandText

[obrigatório] IConvertType

[opcional] IColumnsRowset

[opcional] ICommandPersist

[opcional] ICommandPrepare

[opcional] ICommandWithParameters

[opcional] ISupportErrorInfo

[opcional] ICommandStream

O objeto de comando lida com operações nos dados, sistema autônomo consultas.Pode lidar com instruções parametrizadas ou sem parâmetros.

O objeto de comando também é responsável pela manipulação de ligações para parâmetros e colunas de saída.Uma ligação é uma estrutura que contém informações sobre como uma coluna, em um conjunto de linhas deve ser recuperada.Ele contém informações sistema autônomo ordinal, tipo de dados, comprimento e status.

Transação (opcional)

[obrigatório] IConnectionPointContainer

[obrigatório] ITransaction

[opcional] ISupportErrorInfo

O objeto de transação define uma unidade atômica de trabalho em uma fonte de dados e determina como essas unidades de trabalho se relacionam entre si.Este objeto não é diretamente suportado pelos modelos de provedor do OLE DB (isto é, criar seu próprio objeto).

Para obter mais informações, consulte os seguintes tópicos:

Consulte também

Conceitos

Modelos provedor OLE DB (C++)

Referência

OLE DB Interfaces