关于调用存储过程的一个奇怪问题。

freelyl 2002-08-16 11:13:25
我在数据库的存储过中@InputRate的定义是 @InputRate decimal(16,9)
是输入参数。在数据库中这个字段也是decimal(16,9)
用COMMAND对象运行过程中发现
Cmd.Parameters.Append Cmd.CreateParameter("@InputRate",adDecimal,adParamInput,16)
运行不了(提示多步OLE对象出错。_!!!改成adDouble
Cmd.Parameters.Append Cmd.CreateParameter("@InputRate",adDouble,adParamInput,16)
就可以成功运行?这是什么原因?难道adDecimal是没有用的???请高手指教
...全文
28 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
freezwy 2002-08-16
  • 打赏
  • 举报
回复
好象就是没有这个addecimal的东西。
freelyl 2002-08-16
  • 打赏
  • 举报
回复
不是吧`````````这个东西应该很多人平时会遇到呀,怎么 没人理我?是分数太少吗?给点反应好吧?
freelyl 2002-08-16
  • 打赏
  • 举报
回复
我用

cmd.Parameters.refresh
for each item in cmd.Parameters
response.Write item.name & "||" & item.Type & "||" & item.size & "<BR>"
next

一查果然是类型变了。谢谢 gshope(gshope)提醒。放分。
yonghengdizhen 2002-08-16
  • 打赏
  • 举报
回复
查ADO的联机帮助.
不要妄下结论
freelyl 2002-08-16
  • 打赏
  • 举报
回复
to freezwy(网络自由人) :我在ADOVBS里面看到有,而且对象提示里面也有。

TO gshope(gshope) :体说具体一点吗?那你们遇到DECIMAL类型时怎么办?也和我一样用DOUBLE?
gshope 2002-08-16
  • 打赏
  • 举报
回复
你要注意,有时存储过程里定义的参数数据类型可能有点偏差,比如你定义的是smallint,但实际是tinyint,所以最好在ASP里用command1.parameters.refresh 然后循环显示command1.parameters集合中对象的type和size,然后再写调用的ASP程序

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧