首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb调用存储过程 返回结果集有关问题

2012-12-18 
vb调用存储过程 返回结果集问题?Dim conn As New ADODB.ConnectionIf conn.State adStateOpen Then conn

vb调用存储过程 返回结果集问题?

Dim conn As New ADODB.Connection 
 If conn.State = adStateOpen Then conn.Close
 conn.ConnectionString = sjkcnstr
 conn.Open
'
    Dim MyComm As New ADODB.Command      '定义一个命令对象
    Dim Rs_GetList As New ADODB.Recordset '定义一个记录集对象
    Dim param As ADODB.Parameter         '定义一个参数对象

    With MyComm
        .ActiveConnection = conn           '数据连接
        .CommandText = "XSMXB_LQ2"              '存储过程名称
        .CommandType = adCmdStoredProc   '表明这是一个存储过程
        .Prepared = True                 '要求将SQL命令先行编译
       
      '' 执行此存储过程,返回记录集
    End With
 Set Rs_GetList = MyComm.Execute()
 MsgBox Rs_GetList.RecordCount
Set fpSpread1.DataSource = Rs_GetList
fpSpread1.Refresh

conn.Close

'' 第二种: 
'' Dim rs1 As ADODB.Recordset
'' Set rs1 = New ADODB.Recordset
'' rs1.Open " XSMXB_LQ2 ", conn, 0, 1, 4 ''exec
'' MsgBox rs1.RecordCount
''
'' fpSpread1.MaxRows = rs1.RecordCount
'' Set fpSpread1.DataSource = rs1



''
存储过程很简单,测试用的
 
ALTER PROCEDURE [dbo].[XSMXB_LQ2] 
 as
 set   nocount   on
 
 select * from ICStockBill 



为什么无法返回结果集呢 ?  MsgBox Rs_GetList.RecordCount 每次返回记录数是 -1 

如果用存储过程,直接执行select * from ICStockBill是正常的
[最优解释]
为什么无法返回结果集呢 ? MsgBox Rs_GetList.RecordCount 每次返回记录数是 -1  

如果用存储过程,直接执行select * from ICStockBill是正常的

连接的cursorlocation属性应该设置为aduseclient
否则recordcount为-1
[其他解释]
引用:
为什么无法返回结果集呢 ? MsgBox Rs_GetList.RecordCount 每次返回记录数是 -1  

如果用存储过程,直接执行select * from ICStockBill是正常的

连接的cursorlocation属性应该设置为aduseclient
否则recordcount为-1


 谢谢 搞定了 

热点排行