文章作者 100test 发表时间 2007:03:13 21:46:37
来源 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