ODBC,OLEDB和ADO.NET的底层协议是否存在差异

时间:2021-11-11 04:35:09

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?

使用典型系统之一,ODBC,OLEDB或ADO.NET与SQL Server数据库进行通信时,底层基本协议是否相同?这些系统之间的所有差异基本上只是客户端问题吗?

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

这些只是TDS(表格数据流)传输的不同风格吗?

[MS-TDS]: Tabular Data Stream Protocol Specification

[MS-TDS]:表格数据流协议规范

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

或者有实际的不同方式与数据库服务器通信,这些协议之间存在根本区别?

1 个解决方案

#1


11  

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.

ODBC,OLE DB和ADO.NET是用于与数据库通信的不同API /框架。例如,ADO以连接方式处理数据,主要使用服务器端游标,而ADO.NET以断开连接的方式运行,从服务器快速提取数据并在ADO.NET数据集对象中将其缓存在客户端。

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.

在引擎盖下,每个都是通过TDS向SQL Server发送SQL命令,并通过TDS接收数据。 OLE DB允许您接近TDS以获得性能,而ODBC则抽象了很多,以便为许多不同的数据源提供一致的接口。

#1


11  

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.

ODBC,OLE DB和ADO.NET是用于与数据库通信的不同API /框架。例如,ADO以连接方式处理数据,主要使用服务器端游标,而ADO.NET以断开连接的方式运行,从服务器快速提取数据并在ADO.NET数据集对象中将其缓存在客户端。

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.

在引擎盖下,每个都是通过TDS向SQL Server发送SQL命令,并通过TDS接收数据。 OLE DB允许您接近TDS以获得性能,而ODBC则抽象了很多,以便为许多不同的数据源提供一致的接口。