2008-11-27 4 views
6

Podczas komunikowania się z bazą danych SQL Server przy użyciu jednego z typowych systemów, ODBC, OLEDB lub ADO.NET, podstawowy protokół podstawowy jest taki sam? Czy wszystkie różnice między tymi systemami są po prostu kwestiami po stronie klienta?Czy istnieje różnica w protokole źródłowym dla ODBC, OLEDB i ADO.NET

Czy to tylko różne smaki transferu TDS (Tabular Data Stream)?

[MS-TDS]: Tabular Data Stream Protocol Specification

Albo istnieje rzeczywiste różne sposoby komunikacji z serwerem bazy danych i istnieje zasadnicza różnica pomiędzy tymi protokołami?

Odpowiedz

11

ODBC, OLE DB i ADO.NET to różne interfejsy API/frameworki do komunikacji z bazą danych. Na przykład ADO działa na danych w połączony sposób, głównie za pomocą kursorów po stronie serwera, podczas gdy ADO.NET działa w sposób rozłączony, pobierając dane z serwera szybko i buforując je na kliencie w obiektach zestawu danych ADO.NET.

Pod maską każdy z nich wysyła polecenia SQL do serwera SQL przez TDS i odbiera dane za pośrednictwem TDS. OLE DB pozwala zbliżyć się do TDS w celu uzyskania wydajności, podczas gdy ODBC bardzo dużo abstrahuje, aby zapewnić spójny interfejs dla wielu różnych źródeł danych.

+0

"OLE DB pozwala zbliżyć się do TDS w celu uzyskania wydajności, podczas gdy ODBC bardzo dużo się zbiera, aby zapewnić spójny interfejs dla wielu różnych źródeł danych." - Czy to nie w tył? ODBC jest przeznaczony tylko do SQL, a OLEDB jest bardziej zaawansowany i dla szerszego zakresu źródeł danych, SQL i innych. – Lumi

+0

ODBC również rozmawia z serwerem DB z określonym protokołem aplikacji, dla MSSQL, to TDS. – coanor

Powiązane problemy