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