读书人

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

发布时间: 2012-12-18 12:43:41 作者: rapoo

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


谢谢 搞定了

读书人网 >VB

热点推荐