存储过程如下:use db_test
go
if exists(select * from sysobjects where name='p_test' and type='p')
drop proc p_test
go
create procedure p_test @ref varchar(100)='烟'
as
select * from t_finished_deal where item_class=@ref
go
exec p_test使用存储过程来update,delete这样很方便调用,如果记录是一条一条的插入的,insert操作也很方便。想问的是有没有使用调用存储过程来返回记录集的?在sqlserver里知道可以返回游标的,但是上面的sql语句也可以返回查询结果集的啊,但不会返回给vb调用。
go
if exists(select * from sysobjects where name='p_test' and type='p')
drop proc p_test
go
create procedure p_test @ref varchar(100)='烟'
as
select * from t_finished_deal where item_class=@ref
go
exec p_test使用存储过程来update,delete这样很方便调用,如果记录是一条一条的插入的,insert操作也很方便。想问的是有没有使用调用存储过程来返回记录集的?在sqlserver里知道可以返回游标的,但是上面的sql语句也可以返回查询结果集的啊,但不会返回给vb调用。
解决方案 »
- vb遇到问题需要关闭
- 如何给自定义函数添加描述信息
- 关于WebBrowser状态的问题
- 好莱的数据库问题,请教~~~
- Adodc控件问题
- 关于CPU的型号
- 使用Animation1.Open ("FILECOPY.AVI")的问题,我是打包安装的客户选用的目录可能不同.当系统执行到open,老是提示路径不正确.
- 在SQL2000中求一字段中某一值出现的次数
- 如何设置一个form始终在前端?
- 很急:ActiveReport问题,detail中的line(横向)的靠右的一部分在预览时不见了
- 用setup facotry 7打包后,有的机器上安装提示:安装程序检测到你的vb6运行时文件过旧,怎么解决
- 关于access数据库记录的查询问题,请高手指点一二,在下不胜感激!
*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
如上楼,在执行存储过程后,和执行SQL后一样,使用rs.Fields,rs.MoveNext等就可以了。当存储过程中有多于一个返回时,在执行完第一个查询后需要掉到下一个时,使用Set rs = rs.NextRecordset。
在存储过程中,当不需要返回这个结构时,使用SET NOCOUNT ON,当使用了SET NOCOUNT ON后,需要返回某个结果时,使用SET NOCOUNT OFF即可。
当存储过程有多个参数需要传递的时候呢
dim rs as adodb.recordset
set rs=cn.execute("exec p_test")
只是执行默认参数的查询啊
怎么设置一下?
dim cmd_Test as new command
cmd_Test.CommandType = adCmdStoredProc
cmd_Test.CommandText = "p_Test"
cmd_Test.Parameters("@ref").Value = "酒"
cmd_Test.Prepared = True
strSQL=strSQL+"存储过程名 "+vbcr
strSQL=strSQL+"'"+变量名或 val(控件的值)+"',"+vbcr '当参数为字符型时,使用单引号
strSQL=strSQL+变量名或 val(控件的值)+vbcr
...
set rs=cn.execute("存储过程名")