Coldfusion存储过程错误

时间:2013-02-19 15:46:33

标签: mysql coldfusion coldfusion-7

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

根据我的网络人员的说法,驱动器已接近最新状态。

提前致谢。

1 个答案:

答案 0 :(得分:2)

查看您的SQL,看起来您只有一个varID?您的SP是接受1个参数还是2个?如果只有一个,那么这应该有效:

call deletePosition (1)

我暂时没有使用过Cold Fusion,但这是我记得调用SP的一种方式:

<CFQUERY dataSource="datasource">
deletePosition #varID#
</CFQUERY>

这有用吗?