CF:版本7.02
平台:Windows
DB:MySQL 5.1.45-community
我在CF中执行简单的存储过程时遇到错误。
<CFSTOREDPROC DATASOURCE="datasource" PROCEDURE="deletePosition">
<CFPROCPARAM CFSQLTYPE="cf_sql_integer" DBVARNAME="varID" VALUE="#varID#">
</CFSTOREDPROC>
存储过程:
DROP PROCEDURE deletePosition
CREATE DEFINER= PROCEDURE deletePosition(in varID int)
BEGIN
UPDATE positions SET pos_active = 0 WHERE pos_id = varID;
UPDATE tour SET tour_active = 0 WHERE pos_id = varID;
END
VarID
正在传入,这是它产生的错误:
Error Executing Database Query.
Parameter index of 2 is out of range (1, 1)
SQL {call deletePosition( (param 1) , (param 2) )}
SQLSTATE S1009
根据我的网络人员的说法,驱动器已接近最新状态。
提前致谢。
答案 0 :(得分:2)
查看您的SQL,看起来您只有一个varID?您的SP是接受1个参数还是2个?如果只有一个,那么这应该有效:
call deletePosition (1)
我暂时没有使用过Cold Fusion,但这是我记得调用SP的一种方式:
<CFQUERY dataSource="datasource">
deletePosition #varID#
</CFQUERY>
这有用吗?