51Testing软件测试论坛

标题: QTP处理存储过程输出参数问题 [打印本页]

作者: cheryl    时间: 2008-3-13 17:57
标题: QTP处理存储过程输出参数问题
'与数据库建立连接省略写了一下
set conn=server.CreateObject("adodb.connection")
set cmd=server.CreateObject("adodb.command")
strconn="dsn=pubs;uid=sa;pwd"
conn.Open strconn
set cmd.ActiveConnection=conn
cmd.commandType=4
cmd.CommandText = "oneinout" '储存过程名,这个存储过程包含一个输入参数,一个输出参数。
'QTP在调试的时候对于CreateParameter这个VBS里面的函数好像不认,无法通过。报错误的参数个数或无效的参数属性值:“CreateParameter”
cmd.Parameters.Append cmd.CreateParameter("@aaa",adInteger,adParamInput)
cmd("@aaa")=10
cmd.Parameters.Append cmd.CreateParameter("@bbb",adInteger,adParamOutput)

'补充说明一下入参我用以下方法是可以执行通过。
cmd.Parameters.item(0)=10

各位大虾,是否有好的检查存储过程返回结果的方法?
作者: cheryl    时间: 2008-3-13 18:09
期待解决方案!
作者: higkoo    时间: 2008-3-14 09:00
标题: QTP运行VBS
你直接写个VBS文件,运行会报错么?
作者: higkoo    时间: 2008-3-14 09:00
或者使用VBS编辑器
作者: cheryl    时间: 2008-3-16 13:21
解决了
入参可以用:
cmd.Parameters.item(0)=10或者cmd.Parameters.item(“入参名”)=10取得。
出参可以用:
dim return
return=cmd.Parameters.item(1).value或者return=cmd.Parameters.item(“出参名”).value取得。

作者: cheryl    时间: 2008-3-16 13:22
入参可以用:
cmd.Parameters.item(0)=10或者cmd.Parameters.item(“入参名”)=10传入。
出参可以用:
dim return
return=cmd.Parameters.item(1).value或者return=cmd.Parameters.item(“出参名”).value取得。
作者: cheryl    时间: 2008-3-16 13:27
补充:
获得出参前别忘加
Cmd.Execute
作者: fox750    时间: 2008-3-26 10:09
执行到CMD.EXECUTE的时候来了句
[Microsoft][ODBC SQL Server Driver][SQL Server]过程或函数 'p_CheckItemReference' 需要参数 '@ClassID',但未提供该参数。
好象参数没有传入诶

[ 本帖最后由 fox750 于 2008-3-26 13:29 编辑 ]
作者: cheryl    时间: 2008-3-26 13:59
第一、看入参是否都已经付值l了。
第二、传入入参的数据类型是否匹配
作者: dengminqing    时间: 2008-3-26 16:02
cmd.Parameters.Append cmd.CreateParameter("@aaa",3,1)
cmd("@aaa")=10
cmd.Parameters.Append cmd.CreateParameter("@bbb",3,2)
Cmd.Execute
a=cmd("@bbb")
msgbox a

你这样试试看




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2