关于ASP中使用存储过程中应用程序在当前操作中使用了错误类型的值。

ASP_sem 2008-06-05 11:01:09


set mycmd=server.createobject("ADODB.Command")
mycmd.ActiveConnection = conn
mycmd.CommandType = 4
mycmd.CommandText = "savepurmf"
mycmd.Parameters.Append mycmd.CreateParameter("purmfflowsn", 200, 1,11, trim(tempstr1(0))) mycmd.Parameters.Append mycmd.CreateParameter("purmfdpno", 200, 1,13 , trim(tempstr1(1)))
mycmd.Parameters.Append mycmd.CreateParameter("purmfapplydate", 200, 1,10, trim(tempstr1(2)))
mycmd.Parameters.Append mycmd.CreateParameter("purmfusedate", 200, 1,10, trim(tempstr1(3)))
mycmd.Parameters.Append mycmd.CreateParameter("purmfnumber", 5, 1, , trim(tempstr1(4)))
mycmd.Parameters.Append mycmd.CreateParameter("purmfum", 200, 1,3, trim(tempstr1(5)))
mycmd.Parameters.Append mycmd.CreateParameter("purmfmodel", 200, 1,2, trim(model))
mycmd.Parameters.Append mycmd.CreateParameter("purmfvendor", 200, 1,3, trim(vendor))
mycmd.Parameters.Append mycmd.CreateParameter("purmfapplyunit", 200, 1,4, trim(tempstr1(7)))
mycmd.Parameters.Append mycmd.CreateParameter("purmfisxlflag", 200, 1,2, trim(isxlflag))
mycmd.Execute()
Set mycmd=nothing




在数据库中 PURMF_FLOWSN VARCHAR2 11 CHAR
红色那行报错
错误类型:
ADODB.Command (0x800A0D5D)
应用程序在当前操作中使用了错误类型的值。
...全文
581 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
windwl 2008-06-06
  • 打赏
  • 举报
回复
oracle??
ASP_sem 2008-06-06
  • 打赏
  • 举报
回复
俺顶上去~
ASP_sem 2008-06-06
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE EBUY.savepurmf (
purmfflowsn IN VARCHAR2,
purmfdpno IN VARCHAR2,
purmfmodel IN VARCHAR2,
purmfvendor IN VARCHAR2,
purmfnumber IN NUMBER,
purmfum IN VARCHAR2,
purmfusedate IN VARCHAR2,
purmfapplydate IN VARCHAR2,
purmfapplyunit IN VARCHAR2,
purmfisxlflag IN VARCHAR2
)
IS
i INTEGER := 0;
BEGIN
SELECT COUNT (*)
INTO i
FROM partpurmf_web
WHERE purmf_flowsn = purmfflowsn
AND purmf_dpno = purmfdpno
AND purmf_model = purmfmodel
AND purmf_vendor = purmfvendor;

IF i < 1
THEN
INSERT INTO partpurmf_web
(purmf_id, purmf_flowsn, purmf_model,
purmf_dpno, purmf_vendor, purmf_number, purmf_um,
purmf_usedate, purmf_applydate, purmf_applyunit,
purmf_isxlflag, purmf_inputtime
)
VALUES (seq_partpurmf_web.NEXTVAL, purmfflowsn, purmfmodel,
purmfdpno, purmfvendor, purmfnumber, purmfum,
purmfusedate, purmfapplydate, purmfapplyunit,
purmfisxlflag, SYSDATE
);
ELSE
UPDATE partpurmf_web
SET purmf_number = purmfnumber,
purmf_um = purmfum,
purmf_usedate = purmfusedate,
purmf_applydate = purmfapplydate,
purmf_applyunit = purmfapplyunit,
purmf_isxlflag = purmfisxlflag,
purmf_modtime = SYSDATE
WHERE purmf_flowsn = purmfflowsn
AND purmf_dpno = purmfdpno
AND purmf_model = purmfmodel
AND purmf_vendor = purmfvendor;
END IF;

COMMIT;
END;
/
ASP_sem 2008-06-06
  • 打赏
  • 举报
回复
是的
pzhuyy 2008-06-05
  • 打赏
  • 举报
回复
没有看到哪行是红色的:)
ADODB.Command (0x800A0D5D) 应用程序在当前操作中使用了错误类型的值。
反正就是数据类型不匹配,都强制转换下.
tracy_qd 2008-06-05
  • 打赏
  • 举报
回复
参数类型没有设
windwl 2008-06-05
  • 打赏
  • 举报
回复
mycmd.Parameters.Append mycmd.CreateParameter("purmfflowsn", 202, 1,11, trim(tempstr1(0)))
windwl 2008-06-05
  • 打赏
  • 举报
回复
存储过程贴一下
ASP_sem 2008-06-05
  • 打赏
  • 举报
回复
还是不行,晕乎乎~~
gingerkang 2008-06-05
  • 打赏
  • 举报
回复
@
jhwcd 2008-06-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ASP_sem 的回复:]
刚才那个问题似乎解决了,现在又出现了
错误类型:
Provider (0x80040E21)
多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。

但是我到数据库里查询,数据又有插进去,就是不知道有没有全部都进去了~
不知道上面的那个问题是啥造成的,麻烦各位帮忙看下
[/Quote]
数据库字段字符数太小了,改成大一点,或直接改成TEXT类型的。
xie_yanke 2008-06-05
  • 打赏
  • 举报
回复
.....
Set objCmd = Server.CreateObject("Adodb.Command")
With objCmd
.ActiveConnection = Conn
.CommandType = 4
.Prepared = True
.CommandText = "[存储过程名]"
.Parameters.Append = .createparameter("@参数名", [参数], [参数], [参数], 值)
.Parameters.Append = .createparameter("@参数名", [参数], [参数], [参数], 值)
.....
.Execute() '执行
End With
Set objCmd = Nothing
.....

我都是这么写,没什么错误. 只要你的值在带入参数时,已正确转换, 并引用了正确的parameter的参数类型.
ASP_sem 2008-06-05
  • 打赏
  • 举报
回复
我改了,还是不行~
再瞧瞧~
sportboy2008 2008-06-05
  • 打赏
  • 举报
回复
up!!!!
ASP_sem 2008-06-05
  • 打赏
  • 举报
回复
这有关系么,我试试先哈~~先谢谢哈~
windwl 2008-06-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 windwl 的回复:]
存储过程出现错误了
[/Quote]
应该是某一步操作数据库出现错误了
windwl 2008-06-05
  • 打赏
  • 举报
回复
存储过程出现错误了
xie_yanke 2008-06-05
  • 打赏
  • 举报
回复
trim(tempstr1(2)).... 这些都不要这么写.在参数之前应该按类型转换...

clng..
cbool
cdate
....

ASP_sem 2008-06-05
  • 打赏
  • 举报
回复
刚才那个问题似乎解决了,现在又出现了
错误类型:
Provider (0x80040E21)
多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。


但是我到数据库里查询,数据又有插进去,就是不知道有没有全部都进去了~
不知道上面的那个问题是啥造成的,麻烦各位帮忙看下
xuStanly 2008-06-05
  • 打赏
  • 举报
回复
用事件探查器看看执行存储过程的时候,实际运行的SQL是什么内容。
拷到查询分析器里看看怎么回事。

28,391

社区成员

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

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