Mysql Coldfusion存储过程错误

Mysql Coldfusion存储过程错误,mysql,coldfusion,coldfusion-7,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> Var

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> 
VarID
正在传入,这是它生成的错误:

Error Executing Database Query.

Parameter index of 2 is out of range (1, 1)
SQL   {call deletePosition( (param 1) , (param 2) )}
SQLSTATE      S1009
据我的网络人员说,这些硬盘几乎是最新的


提前感谢。

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

call deletePosition (1)
我已经有一段时间没有使用Cold Fusion了,但这是我记得调用SPs的一种方式:

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

删除位置#变量#

这行得通吗?

您可以发布整个存储过程吗?该SQLSTATE值(S1009)与大量MySQL错误关联。如果没有存储过程定义和提交给MySQL的SQL语句,则无法调试此问题。(在标题“存储过程:”下,您显示了两个UPDATE语句;这不是MySQL存储过程。您说“VarID正在传入”,但没有演示这是如何实现的。如果这是提交给MySQL的实际语句,则错误消息中反映的SQL似乎无效,因为
(param 1)
(param 2)
无效。另外,发布调用SP.DROP过程的ColdFusion代码
deletePosition
CREATE DEFINER=PROCEDURE
deletePosition
(在varID int中)开始更新位置集pos_active=0,其中pos_id=varID;更新巡更集tour_active=0,其中pos_id=varID;仅结束一个变量。我刚刚发布了上面的实际SP。谢谢,我可以通过PHPmyadmin进入,并调用类似于上面在变量中发布的示例的过程#我想删除的位置,效果很好,但通过CF调用时会抛出一个错误。varId的值是多少?另外,我编辑了我的答案,让您尝试一下。有趣的是,这是可行的。我计划将其作为一种解决方法,您也得出了相同的结论。因此,除非找到解决方案,否则我将这样做。问题lem是,在我之前编写代码的开发人员得到一个名为strQuerystatus的变量,如果它是200,那么它将正常运行。我不知道从中获取qryStatus的方法。我更可能需要编写一个try-catch块,除非出现SQL异常,否则status会被分配一个值200,如果不是,则会出现错误ets分配了一个300的值。除非我遗漏了什么。@weggie--我已经有一段时间没有使用CF了,但我想您可以从SP返回一个值--选择1作为QueryStatus--然后向您的CFQuery添加一个Name属性--然后您应该能够在页面上使用该变量。不过,已经有一段时间了:)希望这有点帮助!祝你好运。
<CFQUERY dataSource="datasource">
deletePosition #varID#
</CFQUERY>