2008-11-27 18 views
6

Bei der Kommunikation zu einer SQL Server-Datenbank mit einem der typischen Systeme, ODBC, OLEDB oder ADO.NET, ist das zugrundeliegende Basisprotokoll das gleiche? Sind alle Unterschiede zwischen diesen Systemen im Grunde nur Probleme auf der Client-Seite?Gibt es einen Unterschied im zugrunde liegenden Protokoll für ODBC, OLEDB & ADO.NET

Ist das alles nur unterschiedliche Arten von TDS (Tabular Data Stream) Transfer?

[MS-TDS]: Tabular Data Stream Protocol Specification

Oder es tatsächlich verschiedene Möglichkeiten, um den Datenbankserver und es gibt grundlegenden Unterschied zwischen diesen Protokollen zu sprechen?

Antwort

11

ODBC, OLE DB und ADO.NET sind unterschiedliche API/Frameworks für die Kommunikation mit der Datenbank. Beispielsweise arbeitet ADO mit Daten in einer verbundenen Art und Weise, hauptsächlich mit serverseitigen Cursorn, während ADO.NET in einer getrennten Weise arbeitet, die Daten vom Server schnell abruft und sie auf dem Client in ADO.NET-Datenmengenobjekten zwischenspeichert.

Unter der Haube sendet jede von ihnen SQL-Befehle über TDS an SQL Server und empfängt Daten über TDS zurück. OLE DB ermöglicht es Ihnen, sich der Leistung von TDS zu nähern, während ODBC viel abstrahiert, um eine konsistente Schnittstelle zu vielen verschiedenen Datenquellen bereitzustellen.

+0

"OLE DB ermöglicht es Ihnen, in der Nähe von TDS für die Leistung zu kommen, während ODBC viel abstrahiert, um eine konsistente Schnittstelle zu vielen verschiedenen Datenquellen bereitzustellen." - Ist das nicht rückwärts? ODBC ist nur für SQL, OLEDB dagegen für höhere Ebenen und für eine größere Bandbreite von Datenquellen, SQL und anderen. – Lumi

+0

ODBC spricht auch mit DB-Server mit dem angegebenen App-Protokoll, für MSSQL ist es TDS. – coanor