如何获得存储过程的返回值?
如有一个存储过程GetBill,参数是UserAccount nvarchar(50),Bill Decimal(18,2) OUT ,其中Bill是返回值,请问我在程序中如何获得这个返回值。例如,用的是VB,
dim dblBill as double
dim strUserAccount as string
dim cm as new adodb.command
...
cm.excute "execute getbill '" & struseraccount & "'," & dblBill
是这样吗
问题点数:100、回复次数:5Top
1 楼pengdali()回复于 2003-09-04 19:38:48 得分 20
private sub
dim inSN as string '假定你用的序列号为字符串
dim outRet as long '假定你用的返值为整型
dim cnn as new connection
dim cmd as new command
dim param1 as new parameter
dim param2 as new parameter
on error goto Err
//建立数据库连接
cnn.connectionstring=你要的连接串
cnn.open
set cmd.activeconnection=cnn
//设置命令对象
cmd.commandtype=adcmdstoredprocedure
cmd.commandtext=你写的存储过程名
//添加参数对象
set param1=cmd.createparameter("insn",advarchar,adparaminput,50,inSN)
set param2=cmd.createparameter("RetVal",adinteger,adparamoutput)
cmd.parameters.append param1
cmd.parameters.append param2
//执行之
cmd.execute
//得到结果
OutRet=clng(param2) '得到你想要的返回值
exit sub
Err:
msgbox err.number & err.descrpition
end subTop
2 楼formine(火花)回复于 2003-09-04 19:46:53 得分 0
谢谢,明天结账Top
3 楼txlicenhe(马可)回复于 2003-09-04 19:49:41 得分 20
1: 如上
2:我是不喜欢用output的存储过程,麻烦。
在存储过程的最后用一条select @a ,在前台用起来多方便。
rs.open " exec ... "
rs.fields(0)即可。
Top
4 楼nboys()回复于 2003-09-04 20:04:45 得分 20
datacmd.commandtext="存储过程名称"
datacmd.commandtype=4 '指定是存储过程
datacmd.parameters(1)=value1 '所有的参数
datacmd.parameters(2)=value2
datacmd.parameters(3)=value3
datacmd.parameters(4)=value4
..................
set rs=datacmd.execute()
response.write rs("返回的参数")Top
5 楼sdhdy(大江东去...)回复于 2003-09-04 20:27:07 得分 20
dim dblBill as double
dim strUserAccount as string
dim cmd as new adodb.command
With cmd
.ActiveConnection = cn '数据库连接
.CommandType = adCmdStoredProc
.CommandText = "Getbill"
End With
cmd.Parameters.Append cmd.CreateParameter("@UserAccount", adVarChar, adParamInput, 50, " & struseraccount & ")
cmd.Parameters.Append cmd.CreateParameter("@Bill", addecimal, adParamInputOutput, , 0)
cmd.Execute
dblBill = cmd.Parameters.Item(1).Value
....................................................................Top
6 楼zjcxc(邹建)回复于 2003-09-04 20:32:21 得分 20
dim dblBill as double
dim strUserAccount as string
dim cm as new adodb.command
with cm
.ActiveConnection="数据库连接字符串" '或connection对象
.CommandType=adCmdStoredProc
.CommandText="getbill"
.Parameters.Refresh
.Parameters("@UserAccount")="值"
.execute
dblBill=.Parameters("@Bill") '得到返回值
msgbox "返回值:" & dblBill
end with
Top




