ODBC và OLE DB là hai công nghệ truy cập dữ liệu cạnh tranh. Cụ thể liên quan đến SQL Server, Microsoft đã quảng bá cả hai là Hướng tương lai ưa thích của họ - mặc dù tại các thời điểm khác nhau.
ODBC
ODBC là một giao diện tiêu chuẩn toàn ngành để truy cập dữ liệu giống như bảng. Nó chủ yếu được phát triển cho cơ sở dữ liệu và trình bày dữ liệu trong các bộ sưu tập hồ sơ, mỗi dữ liệu được nhóm lại thành một bộ sưu tập các trường. Mỗi trường có kiểu dữ liệu riêng phù hợp với loại dữ liệu chứa. Mỗi nhà cung cấp cơ sở dữ liệu (Microsoft, Oracle, Postgres, Hoài) cung cấp trình điều khiển ODBC cho cơ sở dữ liệu của họ.
Ngoài ra còn có trình điều khiển ODBC cho các đối tượng, mặc dù chúng không phải là bảng cơ sở dữ liệu, nhưng đủ giống nhau để truy cập dữ liệu theo cách tương tự là hữu ích. Ví dụ là bảng tính, tệp CSV và báo cáo cột.
DB OLE
OLE DB là một công nghệ của Microsoft để truy cập dữ liệu. Không giống như ODBC, nó bao gồm cả dữ liệu giống như bảng và không giống như bảng như thông điệp email, trang web, tài liệu Word và thư mục tệp. Tuy nhiên, nó là hướng thủ tục thay vì hướng đối tượng và được coi là một giao diện khá khó khăn để phát triển quyền truy cập vào các nguồn dữ liệu. Để khắc phục điều này, ADO được thiết kế để trở thành một lớp hướng đối tượng trên đỉnh OLE DB và để cung cấp một cách đơn giản hơn và ở cấp độ cao hơn - mặc dù vẫn rất mạnh mẽ - làm việc với nó. Ưu điểm lớn của ADO là bạn có thể sử dụng nó để thao tác các thuộc tính dành riêng cho một loại nguồn dữ liệu nhất định, dễ dàng như bạn có thể sử dụng nó để truy cập vào các thuộc tính áp dụng cho tất cả các loại nguồn dữ liệu. Bạn không bị giới hạn ở một số mẫu số chung thấp nhất không đạt yêu cầu.
Mặc dù tất cả các cơ sở dữ liệu đều có trình điều khiển ODBC, nhưng tất cả chúng không có trình điều khiển OLE DB. Tuy nhiên, có một giao diện có sẵn giữa OLE và ODBC có thể được sử dụng nếu bạn muốn truy cập chúng theo kiểu giống như OLE DB. Giao diện này được gọi là MSDASQL (nhà cung cấp Microsoft OLE DB cho ODBC).
Công nghệ truy cập dữ liệu SQL Server
Kể từ SQL Server là (1) thực hiện bởi Microsoft, và (2) các nền tảng cơ sở dữ liệu của Microsoft, cả ODBC và OLE DB là một sự phù hợp tự nhiên cho nó.
ODBC
Vì tất cả các nền tảng cơ sở dữ liệu khác có giao diện ODBC, Microsoft rõ ràng phải cung cấp một cho SQL Server. Ngoài ra, DAO, công nghệ mặc định ban đầu trong Microsoft Access, sử dụng ODBC làm cách nói chuyện tiêu chuẩn với tất cả các nguồn dữ liệu bên ngoài. Điều này làm cho một giao diện ODBC trở thành một thông số không. Trình điều khiển ODBC phiên bản 6 cho SQL Server, được phát hành cùng với SQL Server 2000, vẫn còn đó. Các phiên bản cập nhật đã được phát hành để xử lý các loại dữ liệu mới, công nghệ kết nối, mã hóa, HA / DR, v.v. đã xuất hiện cùng với các bản phát hành tiếp theo. Kể từ ngày 09/07/2018, bản phát hành gần đây nhất là Trình điều khiển ODBC v13.1 cho Máy chủ SQL, phát hành vào ngày 23/03/2018.
DB OLE
Đây là công nghệ riêng của Microsoft, công ty mà họ đã quảng bá mạnh mẽ từ khoảng năm 2002 - 2005, cùng với lớp ADO đi kèm. Họ rõ ràng hy vọng rằng nó sẽ trở thành công nghệ truy cập dữ liệu được lựa chọn. (Họ thậm chí đã biến ADO thành phương thức mặc định để truy cập dữ liệu trong Access 2002/2003.) Tuy nhiên, cuối cùng, rõ ràng là điều này sẽ không xảy ra vì một số lý do, chẳng hạn như:
- Thế giới sẽ không chuyển đổi sang các công nghệ của Microsoft và tránh xa ODBC;
- DAO / ODBC nhanh hơn ADO / OLE DB và cũng được tích hợp hoàn toàn vào MS Access, do đó sẽ không chết một cách tự nhiên;
- Các công nghệ mới đang được Microsoft phát triển, cụ thể là ADO.NET, cũng có thể nói chuyện trực tiếp với ODBC. ADO.NET cũng có thể nói chuyện trực tiếp với OLE DB (do đó để ADO ở dưới nước), nhưng nó không (không giống như ADO) chỉ phụ thuộc vào nó.
Vì những lý do này và những lý do khác , Microsoft thực sự không tán thành OLE DB như một công nghệ truy cập dữ liệu cho SQL Server phát hành sau v11 (SQL Server 2012). Trong một vài năm trước thời điểm này, họ đã sản xuất và cập nhật Máy khách bản địa SQL Server, hỗ trợ cả công nghệ ODBC và OLE DB. Tuy nhiên, vào cuối năm 2012, họ tuyên bố rằng họ sẽ liên kết với ODBC để truy cập dữ liệu quan hệ riêng trong SQL Server và khuyến khích mọi người khác làm điều tương tự. Họ cũng tuyên bố rằng SQL Server phát hành sau v11 / SQL Server 2012 sẽ chủ động không hỗ trợ OLE DB!
Thông báo này đã gây ra một cơn bão phản đối. Mọi người không thể hiểu được tại sao MS đột nhiên phản đối một công nghệ mà họ đã mất nhiều năm để họ cam kết. Ngoài ra, SSAS / SSRS và SSIS, là các ứng dụng do MS viết liên kết mật thiết với SQL Server, hoàn toàn phụ thuộc hoặc một phần vào OLE DB. Tuy nhiên, một phàn nàn khác là OLE DB có một số tính năng mong muốn mà dường như không thể chuyển trở lại ODBC - sau tất cả, OLE DB có nhiều điểm tốt.
Vào tháng 10 năm 2017, Microsoft đã đồng ý và chính thức không phản đối OLE DB . Họ đã thông báo về sự xuất hiện của trình điều khiển mới (MSOLEDBSQL) sắp có bộ tính năng hiện có của Máy khách bản địa 11 và cũng sẽ giới thiệu chuyển đổi dự phòng đa mạng con và hỗ trợ TLS 1.2. Trình điều khiển đã được phát hành vào tháng 3 năm 2018.