2008-11-27 9 views
6

Khi giao tiếp với cơ sở dữ liệu SQL Server bằng một trong các hệ thống tiêu biểu, ODBC, OLEDB hoặc ADO.NET, giao thức cơ bản không? Có phải tất cả sự khác biệt giữa các hệ thống này về cơ bản chỉ là vấn đề phía khách hàng?Có sự khác biệt trong giao thức cơ bản cho ODBC, OLEDB & ADO.NET

Đây có phải là tất cả các hương vị khác nhau của TDS (Truyền dữ liệu dạng bảng) không?

[MS-TDS]: Tabular Data Stream Protocol Specification

Hoặc có cách khác nhau thực tế để nói chuyện với các máy chủ cơ sở dữ liệu và có những khác biệt cơ bản giữa các giao thức này?

Trả lời

11

ODBC, OLE DB và ADO.NET là các API/khung công tác khác nhau để giao tiếp với cơ sở dữ liệu. Ví dụ, ADO hoạt động trên dữ liệu theo kiểu kết nối, chủ yếu sử dụng con trỏ phía máy chủ, trong khi ADO.NET hoạt động theo kiểu ngắt kết nối, kéo dữ liệu từ máy chủ một cách nhanh chóng và lưu nó vào máy khách trong đối tượng tập dữ liệu ADO.NET.

Dưới nắp, mỗi trong số này gửi các lệnh SQL đến SQL Server qua TDS và nhận dữ liệu trở lại qua TDS. OLE DB cho phép bạn tiếp cận TDS để thực hiện, trong khi ODBC tóm tắt rất nhiều để cung cấp một giao diện nhất quán cho nhiều nguồn dữ liệu khác nhau.

+0

"OLE DB cho phép bạn tiếp cận TDS để thực hiện, trong khi ODBC tóm tắt rất nhiều để cung cấp giao diện nhất quán cho nhiều nguồn dữ liệu khác nhau." - Không phải là ngược lại sao? ODBC chỉ dành cho SQL, trong khi OLEDB cao cấp hơn và cho một phạm vi rộng hơn các nguồn dữ liệu, SQL và các nguồn khác. – Lumi

+0

ODBC cũng nói chuyện với máy chủ DB với giao thức ứng dụng được chỉ định, cho MSSQL, đó là TDS. – coanor