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
[其他解释]
谢谢 搞定了