Partilhar via


Arquitetura de modelo do provedor de banco de dados OLE

Fontes de dados e sessões

A arquitetura do provedor OLE DB inclui um objeto de fonte de dados e uma ou mais sessões. O objeto de fonte de dados é o objeto inicial que cada provedor deve criar uma instância. Quando um aplicativo do consumidor precisa de dados, ou cria o objeto de fonte de dados para iniciar o provedor. O objeto de fonte de dados cria um objeto de sessão (usando a interface de IDBCreateSession ) pelos quais o consumidor se conecta ao objeto de fonte de dados. Os desenvolvedores de ODBC podem pensar no objeto de fonte de dados como sendo equivalentes a HENV e do objeto de sessão como equivalente a HDBC.

Arquitetura do provedor

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

Interfaces obrigatórias e opcionais

O provedor OLE DB que os modelos apresentam o pré-embalou implementações de todas as interfaces necessárias. As interfaces obrigatórias e opcionais estão definidas pelo OLE DB para vários tipos de objetos:

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

A tabela a seguir lista as interfaces obrigatórias e opcionais para os objetos listados acima, de acordo com Documentação de OLE DB SDK 2,6.

Componente

Interface

Comment

Fonte de dados (CDataSource)

obrigatório IDBCreateSession[]

obrigatório IDBInitialize[]

obrigatório IDBProperties[]

obrigatório IPersist[]

IConnectionPointContainer[opcional]

IDBAsynchStatus[opcional]

IDBDataSourceAdmin[opcional]

IDBInfo[opcional]

IPersistFile[opcional]

ISupportErrorInfo[opcional]

Conexão do consumidor do provedor. O objeto é usado para especificar propriedades na conexão como a ID do usuário, senha, e o nome da fonte de dados. 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[]

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[opcional]

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

O objeto de sessão é o link primário para obter à funcionalidade OLE DB. Para obter a um comando, transações, ou objeto de conjunto de linhas, você deve passar pelo objeto de sessão.

Conjunto de linhas (CRowset)

obrigatório IAccessor[]

obrigatório IColumnsInfo[]

obrigatório IConvertType[]

obrigatório IRowset[]

obrigatório IRowsetInfo[]

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[opcional]

O objeto de conjunto de linhas representa os dados da fonte de dados. O objeto é responsável pelas associações desses dados e todas as operações básicas (atualização, busca, mover, entre outros) nos dados. Você sempre tem um objeto de conjunto de linhas contenha e manipular dados.

Comando (CCommand)

obrigatório IAccessor[]

obrigatório IColumnsInfo[]

obrigatório ICommand[]

obrigatório ICommandProperties[]

obrigatório ICommandText[]

obrigatório IConvertType[]

IColumnsRowset[opcional]

ICommandPersist[opcional]

ICommandPrepare[opcional]

ICommandWithParameters[opcional]

ISupportErrorInfo[opcional]

ICommandStream[opcional]

As operações de identificadores de objeto de comando em dados como consultas. Pode tratar instruções com parâmetros ou não com parâmetros.

O objeto de comando também é responsável para tratar associações de parâmetros e colunas de saída. Uma associação é uma estrutura que contém informações sobre como uma coluna, um conjunto de linhas, deve ser recuperada. Contém informações como o ordinal, o tipo de dados, comprimento, e o status.

Transação (opcional)

obrigatório IConnectionPointContainer[]

obrigatório ITransaction[]

ISupportErrorInfo[opcional]

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

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

Consulte também

Referência

OLE DB Interfaces

Conceitos

Modelos de provedor de banco de dados OLE (C++)