使用典型系统之一ODBC,OLEDB或ADO.NET与SQL Server数据库进行通信时,底层基本协议是否相同?这些系统之间的所有差异基本上只是客户端问题吗?
这些只是TDS(表格数据流)传输的不同风格吗?
[MS-TDS]: Tabular Data Stream Protocol Specification
或者实际上有不同的方式与数据库服务器通信,这些协议之间存在根本区别吗?
答案 0 :(得分:11)
ODBC,OLE DB和ADO.NET是用于与数据库通信的不同API /框架。例如,ADO以连接方式处理数据,主要使用服务器端游标,而ADO.NET以断开连接的方式运行,从服务器快速提取数据并在ADO.NET数据集对象中将其缓存在客户端。
在幕后,每个都通过TDS向SQL Server发送SQL命令,并通过TDS接收数据。 OLE DB允许您接近TDS以获得性能,而ODBC抽象很多,以便为许多不同的数据源提供一致的接口。