51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2187|回复: 5
打印 上一主题 下一主题

[原创] 一段调用存储过程的代码,大家帮忙找一下错误原因哈!谢谢!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-6-21 10:25:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
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()
黑体字这段代码定义存储过程参数老提示"参数类型不匹配",不知道错哪里了,请各位指教哈!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2007-6-22 14:44:27 | 只看该作者
自己顶一下
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-6-21 14:48:54 | 只看该作者

回复 #4 winfood 的帖子

谢谢你的解答哈!
但目前的问题是Set EmployeeID=comm.CreateParameter("@employeeid",adVarChar,adParamInput,40," ")
这一句也是错误的,也是提示“未知名的错误哈”
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-6-21 14:42:11 | 只看该作者
从参数列表
@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这个参数的赋值不对。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-6-21 11:08:04 | 只看该作者
这个存储过程比较复杂,我把头贴上来哈
CREATE      procedure CheckDutyStat @EmployeeID varchar(40),@BranchID varchar(40),@ST datetime,@ET datetime
as。。。。。。
有四个参数
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2007-6-21 10:39:48 | 只看该作者
只把调用的代码放上来,不Show一下存储过程里面的参数定义怎么查呢?
提示参数不匹配,查下CheckDutyStat的输入参数branchid定义。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 15:18 , Processed in 0.083873 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表