2008-11-27 14 views
6

Lors de la communication à une base de données SQL Server en utilisant l'un des systèmes typiques, ODBC, OLEDB ou ADO.NET, le protocole de base sous-jacent est-il le même? Toutes les différences entre ces systèmes sont-elles essentiellement des problèmes côté client? Est-ce que ce sont juste des saveurs différentes de transfert TDS (Tabular Data Stream)?Y at-il une différence dans le protocole sous-jacent pour ODBC, OLEDB et ADO.NET

[MS-TDS]: Tabular Data Stream Protocol Specification

Ou il différentes façons de parler réel au serveur de base de données et il y a des différences fondamentales entre ces protocoles?

Répondre

11

ODBC, OLE DB et ADO.NET sont des API/frameworks différents pour communiquer avec la base de données. Par exemple, ADO fonctionne sur les données de manière connectée, en utilisant principalement des curseurs côté serveur, alors qu'ADO.NET fonctionne de manière déconnectée, en extrayant rapidement les données du serveur et en les mettant en cache sur le client dans les objets ADO.NET. Sous le capot, chacun d'entre eux envoie des commandes SQL à SQL Server via TDS et reçoit des données via TDS. OLE DB vous permet de vous rapprocher de TDS pour les performances, tandis que ODBC en extrait beaucoup pour fournir une interface cohérente à de nombreuses sources de données différentes.

+0

"OLE DB vous permet de vous rapprocher de TDS pour les performances, tandis qu'Odcbs en extrait beaucoup pour fournir une interface cohérente à de nombreuses sources de données différentes." - N'est-ce pas à reculons? ODBC est pour SQL uniquement, tandis que OLEDB est plus haut niveau et pour une plus large gamme de sources de données, SQL et autres. – Lumi

+0

ODBC parle également au serveur DB avec le protocole d'application spécifié, pour MSSQL, c'est TDS. – coanor