Arquitetura de modelo de provedor de BD 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 deve criar uma instância de cada provedor.Quando um aplicativo de consumidor precisa dados, ele co-creates o objeto de fonte de dados para iniciar o provedor.O objeto de fonte de dados cria um objeto de sessão (usando o IDBCreateSession interface) por meio do qual o consumidor se conecta ao objeto de origem de dados.Programadores ODBC podem pensar que o objeto de fonte de dados como sendo o equivalente a HENV e o objeto de sessão como equivalente a HDBC.
Junto com os arquivos de origem criados pelo Assistente do OLE DB para provedor, modelos OLE DB implementam um objeto de fonte de dados.Uma sessão é um objeto que corresponde do OLE DB TSession.
Interfaces obrigatórias e opcionais
Os modelos de provedor do OLE DB oferecem implementações predefinidas para todas as interfaces necessárias.Interfaces obrigatórias e opcionais são definidas por OLE DB para vários tipos de objetos:
Observe que os modelos do provedor OLE DB não implementam os objetos de armazenamento e de linha.
A tabela a seguir lista interfaces obrigatórias e opcionais para os objetos listados acima, conforme a OLE DB 2.6 SDK documentação.
Componente |
Interface |
Comment |
---|---|---|
[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 para o provedor.O objeto é usado para especificar propriedades de conexão, como 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). |
|
[obrigatório] IGetDataSource [obrigatório]IOpenRowset [obrigatório] ISessionProperties [opcional] IAlterIndex [opcional] IAlterTable [opcional] IBindResource lançada [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.Ele é um pouco semelhante ao ODBC HSTMT em que pode haver muitas sessões simultâneas ativas. O objeto de sessão é o link principal para obter a funcionalidade de banco de dados OLE.Para obter um comando, transação ou objeto rowset, vá através do objeto de sessão. |
|
[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 rowset representa os dados da fonte de dados.O objeto é responsável por ligações de dados e quaisquer operações básicas (atualização, busca, movimentação e outros) nos dados.Você sempre terá um objeto rowset para conter e manipular dados. |
|
[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 trata operações nos dados, como consultas.Ele pode manipular instruções parametrizadas ou sem parâmetros. O objeto de comando também é responsável pela manipulação 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 como 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 é, você criar seu próprio objeto). |
Para obter mais informações, consulte os seguintes tópicos: