0

CF:バージョン7.02

プラットフォーム:Windows

DB:MySQL5.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が1つしかないように見えますか?SPは1つのパラメーターまたは2つのパラメーターを受け入れますか?1つだけの場合、これは機能するはずです。

call deletePosition (1)

私はしばらくColdFusionを使っていませんが、これは私がSPを呼んだことを覚えている1つの方法です。

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

それは動作しますか?

于 2013-02-19T15:56:50.673 に答える