我想在一个存储过程中同时返回一个记录集和一个输出参数,如下:Create Proc p1
@total float output
As--Set Nocount on --不知这句话的有无是否有影响select @total=sum(总成绩) from TABLE1
select * from TABLE1Go在vb中
dim rst
dim adocmd
dim i as floatset rst=server.CreateObject("adodb.recordset")
set adocmd=server.CreateObject("adodb.command")
adocmd.CommandType = adCmdStoredProc
adocmd.CommandText = "p1"
adoCmd.Parameters.Append adocmd.CreateParameter ("@total",adDouble,adParamOutput)
set rst=adocmd.execute
i=.Parameters("@total").Value但是测试时只返回了记录集,而没有返回@total的值,为什么?
使用什么方法可以实现我的目的?
谢谢!!!
@total float output
As--Set Nocount on --不知这句话的有无是否有影响select @total=sum(总成绩) from TABLE1
select * from TABLE1Go在vb中
dim rst
dim adocmd
dim i as floatset rst=server.CreateObject("adodb.recordset")
set adocmd=server.CreateObject("adodb.command")
adocmd.CommandType = adCmdStoredProc
adocmd.CommandText = "p1"
adoCmd.Parameters.Append adocmd.CreateParameter ("@total",adDouble,adParamOutput)
set rst=adocmd.execute
i=.Parameters("@total").Value但是测试时只返回了记录集,而没有返回@total的值,为什么?
使用什么方法可以实现我的目的?
谢谢!!!
@total float output
As
begin
--Set Nocount on --可选
select @total=sum(总成绩) from TABLE1
select * from TABLE1
--Set Nocount off --可选end
Go
Dim cn As New adodb.Connection
Dim rst As New adodb.Recordset
Dim adocmd As New adodb.Command
Dim i As Integer cn.Open "........."
adocmd.ActiveConnection = cnDatabase
adocmd.CommandType = adCmdStoredProc
adocmd.CommandText = "p1"
adocmd.Parameters.Append adocmd.CreateParameter("@total", adDouble, adParamOutput)
Set rst = adocmd.Execute
i = adocmd.Parameters("@total").Value
@total float output
As--Set Nocount on --不知这句话的有无是否有影响select @total=sum(总成绩) from TABLE1
Return @total
go
//
dim total as floatadocmd.ActiveConnection = cnDatabase
adocmd.CommandType = adCmdStoredProc
adocmd.CommandText = "p1"
adocmd.execute
total=adocmd.Parameters("@total")
dim rst
dim adocmd
dim i as floatset rst=server.CreateObject("adodb.recordset")
set adocmd=server.CreateObject("adodb.command")
adocmd.CommandType = adCmdStoredProc
adocmd.CommandText = "p1"
adoCmd.Parameters.Rfresh
set rst=adocmd.execute
i=adoCmd.Parameters("@total").Value
as
declare @total numeric(20,3)
select @total=sum(总成绩) from TABLE1
select *, @total as tt from TABLE1
go
在vb中
dim rst
dim adocmd
dim i as floatset rst=server.CreateObject("adodb.recordset")
set adocmd=server.CreateObject("adodb.command")
adocmd.CommandType = adCmdStoredProc
adocmd.CommandText = "p1"
adoCmd.Parameters.Append adocmd.CreateParameter ("@total",adDouble,adParamOutput)
set rst=adocmd.execute
'最后的字段是输出参数的值
i=rst.fields(rst.field.count-1)
create procedure pl
as
declare @total numeric(20,3)
select @total=sum(总成绩) from TABLE1
select *, @total as tt from TABLE1
go
dim adocmd
dim i as floatset rst=server.CreateObject("adodb.recordset")
set adocmd=server.CreateObject("adodb.command")
adocmd.ActiveConnection = 数据库连接字符串
adocmd.CommandType = adCmdStoredProc
adocmd.CommandText = "p1"
adoCmd.Parameters.Refresh
Set rst = adocmd.Execute '第一次调用,得到记录集
adocmd.Execute '再调用,得到返回值
i = adocmd.Parameters("@total").Value