Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1756126
  • 博文数量: 600
  • 博客积分: 10581
  • 博客等级: 上将
  • 技术积分: 6205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:13
文章分类
文章存档

2016年(2)

2015年(9)

2014年(8)

2013年(5)

2012年(8)

2011年(36)

2010年(34)

2009年(451)

2008年(47)

分类:

2009-10-11 13:47:46

来源:cww

会传回MultiResultset的一种情况是,rdoConnection/rdoQuery 中SQL 指令中本身就含
有两个以上的Select 指令,而OpenLink Informix ODBC Driver不提供这个功能,而SQL
Server有提供,但是有几个地方要注意。
如果使用rdUseServer的Cursor,那只能与rdForwardOnly, rdConcurReadonly, Rowsetsize
= 1来搭配(其实这和rdUseNone相同),如果与rdUseOdbc,才没有以上的限制。

经测试,似乎只能用OpenResultset来达成,没有办法用rdoQuery当作rdoConnection物件
方法的方式来做(至少我没有做成,不过曾在其他地方见过如此做的范例),而rdoConnection
的Query_Complete事件要在所有的Query都完成时才会发生。

Set en = rdoEnvironments(0)
Set cn = New rdoConnection
cn.CursorDriver = rdUseServer
connstr = "DSN=SQLSRV;UID=cww;PWD=jjh5612;"
cn.Connect = connstr

On Error GoTo ConnectErr
cn.EstablishConnection rdDriverNoPrompt, False
Dim sql As String
sql = "Select * from qppfa where case_no = 'E8701761' and seq between 1 and 40; select * from testtab"
Set qry = cn.CreateQuery("MyQuery", sql)
qry.CursorType = rdOpenForwardOnly
qry.LockType = rdConcurReadOnly
qry.RowsetSize = 1
On Error GoTo QryErr
Set rs = qry.OpenResultset
'do Something
rs.MoreResults '取得下一个Resultset
'do something
Exit Sub
ConnectErr:
   errstr = GetrdoErrorDescription
   ans = MsgBox(errstr, _
             vbRetryCancel + vbCritical, "连线错误")
   If ans = vbRetry Then
      Err.Clear
      rdoErrors.Clear
      Resume
   Else
      Resume ExitErr
   End If
   Exit Sub
QryErr:
   errstr = GetrdoErrorDescription
   ans = MsgBox(errstr, _
             vbRetryCancel + vbCritical, "查询错误")
   If ans = vbRetry Then
      Err.Clear
      rdoErrors.Clear
      Resume
   Else
      Resume ExitErr
   End If
   Exit Sub
ExitErr:
阅读(659) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~