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 |
---|---|---|
[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). |
|
[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. |
|
[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. |
|
[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: