51Testing软件测试论坛
标题:
一段调用存储过程的代码,大家帮忙找一下错误原因哈!谢谢!
[打印本页]
作者:
zitong
时间:
2007-6-21 10:25
标题:
一段调用存储过程的代码,大家帮忙找一下错误原因哈!谢谢!
Set conn=createobject("adodb.connection")
Set rs=createobject("adodb.recordset")
Set comm=createobject("adodb.command")
conn.open= "Provider=SQLOLEDB.1;Persist Security Info=False;server=10.197.0.20;uid=sa;pwd=sa;database=eCorps2006;version=2000;"
comm.ActiveConnection=conn
comm.CommandType=2
comm.CommandText="CheckDutyStat"
'定义存储过程的参数
Set EmployeeID=comm.CreateParameter("@employeeid",adVarChar,adParamInput,40," ")
comm.Parameters.Append EmployeeID
comm.Parameters.Append comm.CreateParameter("@branchid",adVarChar,adParamInput,40,breachid)//breachid前面已经付值
comm.Parameters.Append comm.CreateParameter("@starttime",adDateTime,adParamInput,now)
comm.Parameters.Append comm.CreateParameter("@endtime",adDateTime,adParamInput,now)
rs=comm.Execute()
黑体字这段代码定义存储过程参数老提示"参数类型不匹配",不知道错哪里了,请各位指教哈!
作者:
winfood
时间:
2007-6-21 10:39
只把调用的代码放上来,不Show一下存储过程里面的参数定义怎么查呢?
提示参数不匹配,查下CheckDutyStat的输入参数branchid定义。
作者:
zitong
时间:
2007-6-21 11:08
这个存储过程比较复杂,我把头贴上来哈
CREATE procedure CheckDutyStat @EmployeeID varchar(40),@BranchID varchar(40),@ST datetime,@ET datetime
as。。。。。。
有四个参数
作者:
winfood
时间:
2007-6-21 14:42
从参数列表
@EmployeeID varchar(40),@BranchID varchar(40),@ST datetime,@ET datetime
里面看,参数BranchID的类型和语句
comm.Parameters.Append comm.CreateParameter("@branchid",adVarChar,adParamInput,40,breachid)
里面转递的参数类型是一致的。
如果类型正确的话,我只能看出一个可疑的地方了,就是上面语句的最后一个参数breachid。
可以检查一下
a) 存储过程里面的参数名称是BranchId,而你这里写的是breachid并且注明前面已赋值。这个变量名是不是笔误?
检查一下前面给这个变量breachid赋值的语句,看看那里用的是不是breachid。
b) 如果a被排除了,尝试把breachid替换成一个字符串,比如
Set EmployeeID=comm.CreateParameter("@employeeid",adVarChar,adParamInput,40," ")
里面用的含一个空格的字符串。替换了以后再运行看看这句是否能够通过,如果能通过则说明breachid这个参数的赋值不对。
作者:
zitong
时间:
2007-6-21 14:48
标题:
回复 #4 winfood 的帖子
谢谢你的解答哈!
但目前的问题是Set EmployeeID=comm.CreateParameter("@employeeid",adVarChar,adParamInput,40," ")
这一句也是错误的,也是提示“未知名的错误哈”
作者:
zitong
时间:
2007-6-22 14:44
自己顶一下
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2