2011-05-26 57 views
0

我想在vb6中打开一个存储过程,我可以在asp中成功打开一个存储过程,但vb6存在打开存储过程的问题。下面是我想要的代码:在VB6中使用连接对象OpenRecordset如何打开sproc?

 qryStr = "DECLARE @return_value int EXEC @return_value = [dbo].[spSproc]" 

它没有返回参数...只是SELECT * FROM在存储过程的命令和它运行在SQL罚款。

Dim rs as ADODB.Recordset 
Set rs = new ADODB.Recordset 
rs = co.OpenRecordset(qryStr, dbOptimistic) 

我没有打开查询的问题,但打开sprocs似乎是问题。这应该是只读的,我没有传递任何参数。 THX

+2

什么类型的对象是'co'? 'OpenRecordset'和'dbOptimistic'是DAO常量,但'rs'被声明为ADO记录集。 – 2011-05-26 05:59:43

+0

使用ADO Command对象:设置其CommandText属性等于proc名称,添加到它的Parameters集合,并调用它的Execute方法,该方法将返回一个Recordset对象。 – onedaywhen 2011-05-26 13:56:17

+0

它是一个连接对象。 – 2011-05-30 05:22:54

回答

1

我想通了,在VB6中有两个记录集对象。一个是

Dim rs as ADODB.Recordset

,另一个是

Dim rs as Recordset

第二个其中不包括ADODB行为类似于记录在ASP。这样我可以使用我的rs.open qryStr,connectionObject

0

我怕我没有访问VB6正确检查这一点,但我想你只需要去掉“声明@return_value”从SQL字符串,所以它读取:

qryStr = "EXEC spSproc" 

希望这不会把戏给你。