12.5多数据结果集

文章作者 100test 发表时间 2011:03:24 20:01:49
来源 100Test.Com百考试题网


在之前版本的 SQL Server 同一时间一条连接只能传递一个 SELECT 语法执行后返回的结果集。SQL Server 2005 提供了在同一条连接上可以同时传递多个没有游标结构(cursorless)的结果集(也称为默认结果集),此功能称为 Multiple Active Resultsets(MARS)。如此可以节省需要同时打开的连接数,但要注意的是连接字符串设置要加上 MultipleAct- iveResultSets=true 属性,否则默认不启动多数据结果集的功能。我们示范这项功能所设计的范例程序画面如图12-7 所示:

在范例中我们用一条连接同时查询每一笔订单与订单细节,并将订单数据存放到 ListBox 控制项,而每一笔订单的细节数据则存放到 Hashtable 类型的实例中。当用户点选 ListBox 不同的项目时,通过键值从 Hashtable 中取出订单细节数据。范例程序代码如列表12-7:

图12-7 通过 SQL Server 2005 所提供的 MARS 机制,同时返回订单与订单细节数据记录

程序代码列表12-7 在同一个 SqlConnection 中实例同时访问多个结果集

Dim conn As SqlConnection

‘利用 Hashtable 存放所有查询回来的订单细节数据

Dim has As New Hashtable

Private Sub marsForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) _

Handles Me.Load

要设置 MultipleActiveResultSets=true,默认为 False,会导致同一条连接同时

打开第二个 DataReader 实例时发生异常

conn = New SqlConnection(ADONET20.My.Settings.AdventureWorksConnection


相关文章


深入浅出SQL系列教程之最基本的SELECT命令
深入浅出SQL系列教程之SQL语言简介
SQLServerSQL导入导出语句
12.6SQLServer2005所提供的主动通知
12.5多数据结果集
MCTS:BizTalkServer2006
MCTS:.NETFramework2.0分布式应用
MCTS:.NETFramework2.0Windows应用
微软认证应用程序开发专家(MCAD)(2)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛