Partilhar via


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

O OLE DB é uma parte importante da estratégia do Microsoft Universal Data Access. O design do OLE DB permite acesso a dados de alto desempenho de qualquer fonte de dados. Todos os dados tabulares podem ser exibidos por meio do OLE DB, independentemente de serem provenientes de um banco de dados. A flexibilidade oferece um enorme poder.

Conforme explicado em Consumidores e Provedores do OLE DB, o OLE DB usa o conceito de consumidores e provedores. O consumidor faz solicitações de dados; o provedor retorna dados em um formato tabular para o consumidor. Do ponto de vista da programação, a implicação mais importante desse modelo é que o provedor precisa implementar qualquer chamada que o consumidor possa fazer.

O que é um provedor?

Um provedor OLE DB é um conjunto de objetos COM que atendem chamadas de interface de um objeto de consumidor, transferindo dados em um formato tabular de uma fonte durável (chamada de armazenamento de dados) para o consumidor.

Os provedores podem ser simples ou complexos. O provedor pode dar suporte a uma quantidade mínima de funcionalidade ou um provedor de qualidade de produção completo implementando mais interfaces. Um provedor pode retornar uma tabela, permitir que o cliente determine o formato dessa tabela e executar operações nesses dados.

Cada provedor implementa um conjunto padrão de objetos COM para lidar com solicitações do cliente, com o significado padrão de que qualquer consumidor OLE DB pode acessar dados de qualquer provedor, independentemente da linguagem (como C++ e Basic).

Cada objeto COM contém várias interfaces, algumas das quais são necessárias e outras opcionais. Ao implementar as interfaces obrigatórias, um provedor garante um nível mínimo de funcionalidade (chamado de conformidade) que qualquer cliente deve ser capaz de usar. Um provedor pode implementar interfaces opcionais para oferecer funcionalidade adicional. A Arquitetura de Modelo do Provedor OLE DB descreve essas interfaces em detalhes. O cliente sempre deve chamar QueryInterface para determinar se um provedor permite uma determinada interface.

Suporte ao nível de especificação do OLE DB

Os modelos de provedor do OLE DB permitem a especificação OLE DB versão 2.7. Usando os modelos de provedor OLE DB, você pode implementar um provedor compatível com o nível 0. O exemplo Provider usa os modelos para implementar um servidor de comando não SQL (MS-DOS) que executa o comando DOS DIR para consultar o sistema de arquivos. O exemplo Provider retorna as informações de diretório em um conjunto de linhas, que é o mecanismo OLE DB padrão para retornar dados tabulares.

O tipo mais simples de provedor compatível com os modelos OLE DB é um provedor somente leitura sem comandos. Provedores com comandos também têm suporte, assim como recursos de leitura/gravação. Você pode implementar um provedor de leitura/gravação se escrever código adicional. Não há suporte para transações e conjuntos de linhas dinâmicos pela versão atual, mas você pode adicioná-las se desejar.

Quando você precisa criar um provedor OLE DB?

Você nem sempre precisa criar seu próprio provedor. A Microsoft oferece vários provedores padrão pré-empacotados na caixa de diálogo Propriedades do Link de Dados no Visual C++. O principal motivo para criar um provedor OLE DB é aproveitar a estratégia do Acesso a Dados Universais. Algumas das vantagens de fazê-lo são:

  • Acessar dados por meio de qualquer linguagem como C++, Basic e Visual Basic Scripting Edition. Ele permite que diferentes programadores na sua organização acessem os mesmos dados da mesma maneira, independentemente da linguagem usada.

  • Abrir seus dados para outras fontes de dados, como SQL Server, Excel e Access. Isso pode ser útil se você quiser transferir dados entre diferentes formatos.

  • Participar de operações de fonte de dados cruzadas (heterogêneas). Essa pode ser uma maneira eficaz de armazenamento de dados. Usando provedores OLE DB, você pode manter os dados no formato nativo e ainda acessá-los em uma operação simples.

  • Adicionar recursos adicionais aos seus dados, como o processamento de consultas.

  • Aumentar o desempenho do acesso aos dados controlando como eles são manipulados.

  • Aumentando a robustez. Se você tiver um formato de dados proprietário que apenas um programador possa acessar, você estará em risco. Usando provedores OLE DB, você pode abrir esse formato proprietário para todos os seus programadores.

provedores Read-Only e atualizáveis

Os provedores podem variar muito em complexidade e funcionalidade. É útil categorizar provedores em somente leitura atualizáveis:

  • O Visual C++ 6.0 só permite provedores somente leitura. A criação de um provedor OLE DB discute como criar um provedor somente leitura.
  • O Visual C++ dá suporte a provedores atualizáveis que podem atualizar (gravar em) o armazenamento de dados. Para obter informações sobre provedores atualizáveis, consulte Criando um provedor atualizável. UpdatePV é um exemplo de um provedor atualizável.

Para saber mais, veja:

Confira também

Acesso a dados
Documentação do SDK do OLE DB
Referência do programador de OLE DB