ODBC ve OLE DB rakip iki veri erişim teknolojisidir. Özellikle SQL Server ile ilgili olarak, Microsoft her ikisini de Tercih Edilen Gelecek Yönü olarak tanıtmıştır - farklı zamanlarda.
ODBC
ODBC, tablo benzeri verilere erişmek için endüstri çapında standart bir arabirimdir. Öncelikle veritabanları için geliştirildi ve her biri bir alan koleksiyonunda gruplanan kayıt koleksiyonlarında veri sunuyor. Her alanın içerdiği veri türüne uygun kendi veri türü vardır. Her veritabanı satıcısı (Microsoft, Oracle, Postgres,…) veritabanı için bir ODBC sürücüsü sağlar.
Ayrıca, veritabanı tabloları olmasa da, verilere aynı şekilde erişmenin faydalı olduğuna yeterince benzeyen nesneler için ODBC sürücüleri de vardır. Örnekler e-tablolar, CSV dosyaları ve sütun raporlarıdır.
OLE DB
OLE DB, verilere erişim için bir Microsoft teknolojisidir. ODBC'den farklı olarak, e-posta mesajları, web sayfaları, Word belgeleri ve dosya dizinleri gibi hem tablo benzeri hem de tablo benzeri olmayan verileri kapsar. Bununla birlikte, nesne yönelimli olmaktan ziyade prosedür yönelimlidir ve veri kaynaklarına erişimin geliştirilmesi için oldukça zor bir arayüz olarak kabul edilmektedir. Bunun üstesinden gelmek için ADO, OLE DB'nin üstünde nesne yönelimli bir katman olacak ve onunla daha basit ve daha yüksek düzeyde - yine de çok güçlü - bir çalışma yöntemi sağlayacak şekilde tasarlanmıştır. ADO'nun en büyük avantajı, belirli bir veri kaynağına özgü özellikleri, tüm veri kaynağı türlerine uygulanan özelliklere erişmek için kullanabildiğiniz gibi kolayca kullanabilmenizdir. Bazı tatmin edici olmayan en düşük ortak payda ile sınırlı değilsiniz.
Tüm veritabanlarının ODBC sürücüleri olsa da, hepsinin OLE DB sürücüleri yoktur. Bununla birlikte, OLE ve ODBC arasında, OLE DB benzeri bir şekilde erişmek istiyorsanız kullanılabilecek bir arabirim vardır. Bu arabirime MSDASQL (ODBC için Microsoft OLE DB sağlayıcısı) denir.
SQL Server Veri Erişim Teknolojileri
SQL Server, Microsoft tarafından yapılan (1), ve yana (2) Microsoft veritabanı platformu, ODBC ve OLE DB hem bunun için doğal bir uyum vardır.
ODBC
Diğer tüm veritabanı platformlarında ODBC arabirimleri bulunduğundan, Microsoft'un SQL Server için bir tane sağlamak zorunda olduğu açıktır. Buna ek olarak, Microsoft Access'teki orijinal varsayılan teknoloji olan DAO, tüm harici veri kaynaklarıyla standart konuşma yöntemi olarak ODBC'yi kullanır. Bu bir ODBC arabirimini olmazsa olmaz kıldı. SQL Server için sürüm 6 ODBC sürücüsü, SQL Server 2000 ile yayımlanan hala etrafında. Sonraki sürümlerle ortaya çıkan yeni veri türlerini, bağlantı teknolojilerini, şifrelemeyi, HA / DR vb. İşlemek için güncellenmiş sürümler yayınlanmıştır. 09/07/2018 itibariyle en son sürüm 23/03/2018 tarihinde yayınlanan v13.1 “SQL Server için ODBC Sürücüsü” dür.
OLE DB
Bu, Microsoft'un kendi teknolojisi olup, 2002-2005 yılları arasında beraberinde gelen ADO katmanıyla birlikte güçlü bir şekilde tanıtmaktadırlar. Belli ki bunun, tercih edilen veri erişim teknolojisi olacağını umuyorlardı. (Hatta ADO'yu Access 2002/2003'te verilere erişmek için varsayılan yöntem haline getirdiler.) Ancak, bunun, aşağıdakiler gibi bir dizi nedenden dolayı olmayacağı belli oldu:
- Dünya Microsoft teknolojilerine ve ODBC'den uzaklaşmayacaktı;
- DAO / ODBC, ADO / OLE DB'den daha hızlıydı ve MS Access'e iyice entegre edildi, bu yüzden doğal bir ölümle ölmeyecekti;
- Microsoft tarafından geliştirilen yeni teknolojiler, özellikle ADO.NET de doğrudan ODBC ile konuşabilir. ADO.NET doğrudan OLE DB ile de konuşabilir (böylece ADO'yu bir durgun su içinde bırakır), ancak (ADO'nun aksine) sadece ona bağlı değildi.
Bu nedenlerle ve diğer nedenlerle Microsoft, OLE DB'yi v11'den sonra SQL Server sürümleri için bir veri erişim teknolojisi olarak kullanımdan kaldırmıştır (SQL Server 2012). Bu noktadan birkaç yıl önce, hem ODBC hem de OLE DB teknolojilerini destekleyen SQL Server Yerel İstemcisi'ni üretiyor ve güncelliyorlardı. Ancak 2012'nin sonlarında, SQL Server'da yerel ilişkisel veri erişimi için ODBC ile hizalanacaklarını açıkladılar ve diğer herkesi de aynı şeyi yapmaya teşvik ettiler. Bunlar ayrıca v11 bundan sonra SQL Server bültenleri belirtilen / SQL Server 2012 aktif olur değil OLE DB destek!
Bu duyuru bir protesto fırtınasını kışkırttı. İnsanlar, MS'nin neden yıllarca uğraştıkları bir teknolojiyi anlamaya karar verdiklerini anlamakta kayıp oldular. Ayrıca, SQL Server'a yakından bağlı MS tarafından yazılmış uygulamalar olan SSAS / SSRS ve SSIS, tamamen veya kısmen OLE DB'ye bağımlıydı. Yine başka bir şikayet, OLE DB'nin ODBC'ye geri dönmek imkansız görünen bazı istenen özelliklere sahip olmasıydı - sonuçta, OLE DB'nin çok iyi noktaları vardı.
Ekim 2017'de Microsoft, OLE DB'yi serbest bıraktı ve resmi olarak kullanımdan kaldırdı . Yerel İstemci 11'in mevcut özellik kümesine sahip olacak ve ayrıca çok alt ağ yük devretme ve TLS 1.2 desteği sunacak yeni bir sürücünün (MSOLEDBSQL) yakında geleceğini duyurdular. Sürücü Mart 2018'de serbest bırakıldı.