0

CF:版本 7.02

平台:视窗

DB:MySQL 5.1.45-社区

在 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

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

提前致谢。

4

1 回答 1

2

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

call deletePosition (1)

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

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

那样有用吗?

于 2013-02-19T15:56:50.673 回答