Pergunta

Eu estava lendo um artigo de ajuda MS Excel sobre PivotCache e saber o que eles querem dizer com fontes OLE DB e ODBC

... Você deve usar o CommandText propriedade em vez da propriedade SQL, que agora existe principalmente para compatibilidade com versões anteriores do Microsoft Excel. Se você usar tanto propriedades, da propriedade CommandText valor tem precedência.

Para fontes OLE DB , o CommandType propriedade descreve o valor da CommandText propriedade.

Para ODBC fontes , o CommandText funções de propriedade exatamente como o propriedade SQL, e definindo a propriedade faz com que os dados sejam atualizados ...

Eu realmente aprecio suas respostas curtas.

Foi útil?

Solução

De acordo com a ADO:. ActiveX Data Objects , um livro escrito por Jason T. Roff, publicado pela O'Reilly Media em 2001 (diagrama excelente aqui), ele diz precisamente o que a Mozilla afirmou

(directamente a partir da página 7 do livro)

  • ODBC fornece acesso somente aos bancos de dados relacionais
  • OLE DB fornece os seguintes recursos
    • O acesso aos dados, independentemente do seu formato ou localização
    • O pleno acesso a fontes de dados ODBC e controladores ODBC

Assim parece que interage OLE DB com fontes de dados baseadas em SQL através da camada de driver ODBC.

text alt

Eu não estou 100% certo esta imagem está correta. As duas conexões Eu não estou certo sobre se ADO.NET através ADO C-api e OLE DB através de ODBC para baseada em SQL fonte de dados (porque no este diagrama o autor não coloca o acesso do OLE DB através de ODBC, que eu acredito que é um erro).

Outras dicas

ODBC: - Só para bancos de dados relacionais (SQL Server, Oracle etc)

OLE DB: - Para ambos os bancos de dados relacionais e não-relacionais. (Oracle, SQL-Server, Excel, arquivos raw, etc)

Aqui está o meu entendimento (não-autorizada):

ODBC é um padrão aberto de tecnologia agnóstica suportado pela maioria dos fornecedores de software. OLEDB é uma específicas de tecnologia API da Microsoft do COM-era (COM era uma tecnologia de componentes e interoperabilidade antes de .NET)

Em algum momento vários fornecedores datasouce (por exemplo, a Oracle etc.), dispostos a ser compatível com os consumidores de dados da Microsoft, provedores OLEDB desenvolvidos para seus produtos, mas para a maior parte OLEDB continua a ser um Microsoft-only padrão. Agora, a maioria Microsoft fontes de dados permitem que tanto ODBC e acesso OLEDB, principalmente para compatibilidade com os consumidores de dados ODBC legado. Além disso, existe provedor OLE DB (invólucro) para ODBC que permite o uso OLEDB para fontes de dados ODBC acesso se assim o desejar.

Em termos de características OLEDB é substancialmente mais rico do que ODBC mas sofre de um anel-to-rule-los-all síndrome (excessivamente genérico, demasiado complicada, não opinativo).

No mundo não-Microsoft provedores de dados ODBC-based e os clientes são amplamente utilizados e não vai a lugar nenhum.

Dentro Microsoft bolha OLEDB está a ser eliminada em favor do nativo APIs NET construir em cima de qualquer que seja a camada de transporte nativo para essa fonte de dados é (por exemplo TDS para MS SQL Server).

ODBC e OLE DB são dois concorrentes tecnologias de acesso de dados. Especificamente em relação SQL Server, Microsoft tem promovido tanto deles como sua direção preferencial Futuro -. Embora em momentos diferentes

ODBC

ODBC é uma interface padrão de toda a indústria para acessar a tabela do tipo de dados. Ele foi desenvolvido principalmente para bancos de dados e apresenta os dados em coleções de registros, cada um dos quais é agrupado em uma coleção de campos. Cada campo tem seu próprio tipo de dados apropriado para o tipo de dados que ele contém. Cada fornecedor de banco de dados (Microsoft, Oracle, PostgreSQL, ...) fornece um driver ODBC para o seu banco de dados.

Há também drivers ODBC para objetos que, embora eles não são tabelas de banco de dados, são suficientemente semelhantes que o acesso a dados do mesmo modo é útil. Exemplos são planilhas, arquivos CSV e relatórios de colunas.

OLE DB

OLE DB é uma tecnologia da Microsoft para acesso aos dados. Ao contrário de ODBC que engloba tanto a mesa-like e não-mesa-like dados, tais como e-mails, páginas web, documentos do Word e diretórios de arquivos. No entanto, é em vez de orientada a objeto orientada para o procedimento e é considerado como uma interface bastante difícil com a qual desenvolver o acesso a fontes de dados. Para superar isso, ADO foi projetado para ser uma camada orientada a objeto em cima do OLE DB e para fornecer um alto nível mais simples e - embora ainda muito poderoso - forma de trabalhar com ele. grande vantagem do ADO que você pode usá-lo para manipular as propriedades que são específicos para um determinado tipo de fonte de dados, tão facilmente como você pode usá-lo para acessar as propriedades que se aplicam a todos os tipos de fontes de dados. Você não está restrito a alguns insatisfatória menor denominador comum.

Apesar de todos os bancos de dados têm drivers ODBC, nem todos eles têm drivers OLE DB. Há, porém, uma interface disponível entre OLE e ODBC que pode ser usado se você quiser acessá-los em OLE DB-como a forma. Essa interface é chamada MSDASQL (provedor Microsoft OLE DB para ODBC).

SQL Data Access Technologies Servidor

Uma vez que o SQL Server é (1) feita pela Microsoft, e (2) o Microsoft plataforma de banco de dados, ODBC e OLE DB são um ajuste natural para ele.

ODBC

Uma vez que todas as outras plataformas de banco de dados teve as interfaces ODBC, Microsoft, obviamente, tinha de fornecer um para SQL Server. Além disso, DAO, a tecnologia padrão original no Microsoft Access, usa ODBC como a forma padrão de falar com todas as fontes de dados externas. Isso fez com que um ODBC interface de uma condição sine qua non. O driver ODBC versão 6 para o SQL Server, lançado com o SQL Server 2000, ainda está por aí. Versões atualizadas foram liberados para lidar com os novos tipos de dados, tecnologias de conexão, criptografia, HA / DR etc. que têm aparecido com versões subseqüentes. A partir de 2018/09/07 a versão mais recente é v13.1 “driver ODBC para SQL Server”, lançado em 23/03/2018.

OLE DB

Esta é própria tecnologia da Microsoft, que eles estavam promovendo fortemente de cerca de 2002 - 2005, junto com sua camada ADO que acompanha. Eles foram evidentemente esperando que ele se tornaria a tecnologia de acesso de dados de escolha. (Eles ainda fizeram ADO o método padrão para acessar dados em Access 2002/2003). No entanto, ele se tornou evidente que isso não ia acontecer por uma série de razões, tais como:

  1. O mundo não ia converter em tecnologias da Microsoft e longe de ODBC;
  2. DAO / ODBC foi mais rápido do ADO / OLE DB e também foi completamente integrado em MS Access, por isso não ia morrer de morte natural;
  3. As novas tecnologias que estão sendo desenvolvidas pela Microsoft, especificamente ADO.NET, também poderia falar diretamente com ODBC. ADO.NET poderia falar diretamente com OLE DB, bem como (deixando assim ADO em um remanso), mas não foi (ao contrário ADO) unicamente dependente dele.

Por estas razões e outros , Microsoft realmente obsoleta OLE DB como uma tecnologia de acesso de dados para versões SQL Server depois v11 (SQL Server 2012). Para um par de anos antes deste ponto, que tinham vindo a produzir e atualizar o SQL Server Native Client, que apoiou ambas as tecnologias ODBC e OLE DB. No final de 2012 no entanto, eles anunciaram que iriam ser alinhando com ODBC para acesso nativo de dados relacional em SQL Server, e todos encorajados outra pessoa a fazer o mesmo. Eles afirmou ainda que libera SQL Server após v11 / SQL Server 2012 seria ativamente não suporte OLE DB!

Este anúncio provocou uma tempestade de protestos. As pessoas estavam em uma perda para entender por que MS foi subitamente depreciativo uma tecnologia que passou anos recebendo-os a comprometer-se. Além disso, SSAS / SSRS e SSIS, que eram aplicações MS-escritos intimamente ligadas ao SQL Server, foram total ou parcialmente dependentes de OLE DB. No entanto, outra queixa era que OLE DB tinha certas características desejáveis ??que pareciam impossíveis para a porta de volta para ODBC -. Afinal, OLE DB tinha muitos pontos bons

Em Outubro de 2017, a Microsoft cedeu e oficialmente un-obsoleta OLE DB . Eles anunciaram a chegada iminente de um novo driver (MSOLEDBSQL) que teria o conjunto de recursos existente do Native Client 11 e também apresentar várias sub-redes failover e 1,2 apoio TLS. O motorista foi liberado março 2018.

Em um nível muito básico, esses são apenas diferentes APIs para as diferentes fontes de dados (ou seja, bases de dados). OLE DB é mais recente e indiscutivelmente melhor.

Você pode ler mais sobre ambos na Wikipedia:

  1. OLE DB
  2. ODBC

i. você pode se conectar ao mesmo banco de dados usando um driver ODBC ou driver OLE DB. A diferença no comportamento do banco de dados nesses casos é que seu livro se refere.

Ambos são fornecedores de dados (API que seu código irá utilizar para falar com uma fonte de dados). Oledb que foi introduzido em 1998, foi concebido para ser um substituto para ODBC (introduzida em 1992)

Eu não tenho certeza de todos os detalhes, mas o meu entendimento é que OLE DB e ODBC são duas APIs que estão disponíveis para conexão com vários tipos de bancos de dados sem ter que lidar com todos os detalhes de implementação específicos de cada um. De acordo com a o artigo da Wikipedia sobre OLE DB , OLE DB é o sucessor da Microsoft para ODBC, e fornece alguns recursos que você pode não ser capaz de fazer com ODBC, como acessar planilhas como fontes de banco de dados.

website Na Microsoft, ele mostra que provedor OLE DB nativo é aplicado ao servidor SQL diretamente e outro provedor OLEDB chamado OLEDB Provider para ODBC para acessar outros dados, tais como Sysbase, DB2 etc. Existem diferentes tipos de componente sob Provider OLEDB. Consulte consultas distribuídas no MSDN para mais .

• agosto de 2011: Microsoft deprecates OLE DB ( Microsoft está alinhando com ODBC para Native Relational Data Access )

• outubro de 2017: Microsoft undeprecates OLE DB ( ao anunciar a nova versão do OLE dB driver para SQL server )

ODBC funciona somente para bancos de dados relacionais, não pode trabalha com bancos de dados não relacionais, como arquivos de MS Excel. Onde Olebd pode fazer tudo.

Para saber porque a M $ inventa OLEDB, você não pode comparar OLEDB com ODBC. Em vez disso, você deve comparar OLEDB com DAO, RDO ou ADO. Este último se baseia em grande parte em SQL. No entanto, OLEDB depende COM. Mas ODBC já está lá há muitos anos, por isso há uma OLEDB-ODBC pontes para remediar esta situação. Eu acho que há uma grande imagem quando M $ inventa OLEDB.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top