ODBC e OLE DB são duas tecnologias concorrentes de acesso a dados. Especificamente em relação ao SQL Server, a Microsoft promoveu os dois como sua Direção preferida do futuro - embora em momentos diferentes.
ODBC
ODBC é uma interface padrão de todo o setor para acessar dados semelhantes a tabelas. Foi desenvolvido principalmente para bancos de dados e apresenta dados em coleções de registros, cada um dos quais agrupado em uma coleção de campos. Cada campo possui seu próprio tipo de dados adequado ao tipo de dados que contém. Cada fornecedor de banco de dados (Microsoft, Oracle, Postgres,…) fornece um driver ODBC para seu banco de dados.
Também existem drivers ODBC para objetos que, embora não sejam tabelas de banco de dados, são suficientemente semelhantes para acessar dados da mesma maneira. Exemplos são planilhas, arquivos CSV e relatórios em colunas.
OLE DB
OLE DB é uma tecnologia da Microsoft para acesso a dados. Ao contrário do ODBC, ele abrange dados semelhantes a tabelas e não semelhantes a tabelas, como mensagens de email, páginas da Web, documentos do Word e diretórios de arquivos. No entanto, é orientado a procedimentos e não a objetos e é considerado uma interface bastante difícil para desenvolver o acesso às fontes de dados. Para superar isso, o ADO foi projetado para ser uma camada orientada a objetos no topo do OLE DB e fornecer uma maneira mais simples e de nível superior - embora ainda muito poderosa - de trabalhar com ele. A grande vantagem do ADO é que você pode usá-lo para manipular propriedades específicas de um determinado tipo de fonte de dados, tão facilmente quanto você pode usá-lo para acessar as propriedades que se aplicam a todos os tipos de fonte de dados. Você não está restrito a um menor denominador comum insatisfatório.
Embora todos os bancos de dados tenham drivers ODBC, nem todos eles possuem drivers OLE DB. No entanto, existe uma interface disponível entre o OLE e o ODBC que pode ser usada se você deseja acessá-los da maneira semelhante ao OLE DB. Essa interface é chamada MSDASQL (provedor Microsoft OLE DB para ODBC).
Tecnologias de acesso a dados do SQL Server
Como o SQL Server é (1) fabricado pela Microsoft e (2) a plataforma de banco de dados da Microsoft, o ODBC e o OLE DB são um ajuste natural para ele.
ODBC
Como todas as outras plataformas de banco de dados tinham interfaces ODBC, a Microsoft obviamente precisava fornecer uma para o SQL Server. Além disso, o DAO, a tecnologia padrão original no Microsoft Access, usa o ODBC como a maneira padrão de conversar com todas as fontes de dados externas. Isso fez da interface ODBC uma condição sine qua non. O driver ODBC da versão 6 para o SQL Server, lançado com o SQL Server 2000, ainda existe. Versões atualizadas foram lançadas para lidar com os novos tipos de dados, tecnologias de conexão, criptografia, HA / DR etc. que apareceram nas versões subseqüentes. Em 07/07/2018, a versão mais recente é a v13.1 “Driver ODBC para SQL Server”, lançada em 23/03/2018.
OLE DB
Essa é a tecnologia da Microsoft, que eles estavam promovendo fortemente entre 2002 e 2005, junto com a camada ADO que a acompanha. Evidentemente, eles esperavam que se tornasse a tecnologia de acesso a dados de sua escolha. (Eles até tornaram o ADO o método padrão para acessar dados no Access 2002/2003.) No entanto, eventualmente ficou claro que isso não aconteceria por vários motivos, como:
- O mundo não iria se converter às tecnologias da Microsoft e se afastar do ODBC;
- O DAO / ODBC foi mais rápido que o ADO / OLE DB e também foi completamente integrado ao MS Access; portanto, não seria uma morte natural;
- Novas tecnologias que estavam sendo desenvolvidas pela Microsoft, especificamente o ADO.NET, também podiam conversar diretamente com o ODBC. O ADO.NET também podia conversar diretamente com o OLE DB (deixando o ADO em segundo plano), mas não era (ao contrário do ADO) apenas dependente dele.
Por esses motivos e outros , a Microsoft realmente descontinuou o OLE DB como uma tecnologia de acesso a dados para versões do SQL Server após a v11 (SQL Server 2012). Por alguns anos antes desse ponto, eles estavam produzindo e atualizando o SQL Server Native Client, que suportava as tecnologias ODBC e OLE DB. No final de 2012, eles anunciaram que estariam alinhados ao ODBC para acessar dados relacionais nativos no SQL Server e incentivaram todos os demais a fazer o mesmo. Eles declararam ainda que as versões do SQL Server após a v11 / SQL Server 2012 não suportariam ativamente o OLE DB!
Este anúncio provocou uma tempestade de protestos. As pessoas não conseguiram entender por que a MS repentinamente deprecia uma tecnologia com a qual haviam passado anos se comprometendo. Além disso, o SSAS / SSRS e o SSIS, que eram aplicativos gravados em MS intimamente vinculados ao SQL Server, dependiam total ou parcialmente do OLE DB. Outra reclamação foi que o OLE DB tinha certos recursos desejáveis que pareciam impossíveis de transportar de volta ao ODBC - afinal, o OLE DB tinha muitos pontos positivos.
Em outubro de 2017, a Microsoft cedeu e oficialmente reprovou o 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 introduziria failover de multi-sub-rede e suporte a TLS 1.2. O driver foi lançado em março de 2018.