WEB开发网
开发学院软件开发VC 从 ADO 迁移到 ADO.NET(一) 阅读

从 ADO 迁移到 ADO.NET(一)

 2006-07-23 11:17:26 来源:WEB开发网   
核心提示: Recordset 到 ReadersADO 中的 Recordset,其行为(功能)依赖其属性设置的不同而不同,从 ADO 迁移到 ADO.NET(一)(4),而在 ADO.NET 中 Recordset 被分解成许多不同的对象和方法, 从而避免了 Recordset 大而全的弊端,Da
Recordset 到 Readers

ADO 中的 Recordset,其行为(功能)依赖其属性设置的不同而不同,而在 ADO.NET 中 Recordset 被分解成许多不同的对象和方法。 从而避免了 Recordset 大而全的弊端,着眼于使各个对象各司其职,因此 ADO.NET 中的这种分解可以显著提高效率。ADO 中的 Recordset 可以是个连接的行集也可以是个非连接的行集。它可以充当一个前 向(forward-only)只读的游标,或者允许行集中位置的前移、后移和向中间移动。ADO 的 Recordset 允许对数据修改直接在数据库中完成,允许保存数据修改并以批处理形式发送给数据库。问题在于 ADO 的 Recordset 承担了太多的功能。ADO.NET 中将这些功能分解为多个对象去 分别完成特定的任务,因而 ADO Recordset 的功能被分为 DataSet 对象、DataReader 对象、DataAdapter 和 Command 对象。

前向、只读游标要求与数据源一直处于连接状态。ADO.NET 使用 DataReader 对象确保当其打开时,就一直处于连接状态。DataReader 专为 某一数据提供程序如 SQL Server、Oracle 或更通用的 OLE DB 数据提供程序而编写。因此,SqlDataReader 对象可以连接到 SQL Server 数据库,并且充当一个 firehose 游标的角色,在大量的记录间循环。SqlDataReader 也具有对查询结果的快速前向(fast-forward-only)访问功能。它从数据库的查询结果中检索到一条记录, 并保持连接为打开状态,以便成功检索下一条记录。ADO.NET 的 DataReader 由于不支持 ADO Recordset 的所有功能,因而效率 极其高。Figure 2 中的例子演示了如何在传统的 ADO 和 ADO.NET 中实现一个只前向移动的游标的例子。值得注意的是在 ADO.NET 中,DataReader 对象的 Read 方法自动移动位置到下一条记录。这就避免了开发者在使用传统的 ADO 时,由于疏忽了调用ADO Recordset 的 MoveNext 方法而导致死循环的情况的出现。

上一页  1 2 3 4 5 6  下一页

Tags:ADO 迁移 ADO

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接