Is there a difference in the underlying protocol for ODBC, OLEDB & ADO.NET

When communicating to a SQL Server database using one of the typical systems, ODBC, OLEDB or ADO.NET, is the underlying basic protocol the same? Are all the differences between these systems basically just client side issues?

Is this all just different flavors of TDS (Tabular Data Stream) transfer?

[MS-TDS]: Tabular Data Stream Protocol Specification

Or there actual different ways to talk to the database server and there are fundamental difference between these protocols?


ODBC, OLE DB and ADO.NET are different API/frameworks for communicating with the database. For example, ADO works on data in a connected fashion, primarily using server-side cursors, whereas ADO.NET operates on a disconnected fashion, pulling the data from the server quickly and caching it at the client in ADO.NET dataset objects.

Under the hood, each of these is sending SQL commands to SQL Server over TDS, and receiving data back via TDS. OLE DB allows you to get close to TDS for performance, whereas ODBC abstracts a lot to provide a consistent interface to many different data sources.

Need Your Help

Create delegates for a NSOperation : callback problem

objective-c delegates nsoperation

I'm facing a problem in a simple TableView : i want to refresh the data from the Net in a separate thread to avoid blocking the UI. I've created a NSoperation that will do the job. This object crea...

How is Memory Organized in Windows?

windows memory memory-management

I'm looking for an explanation or good free online resources about the organization of memory and memory management in Windows systems.

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.