Question

CF: Version 7.02

Platform: Windows

DB: MySQL 5.1.45-community

I'm getting an error when executing a simple Stored Procedure in CF.

<CFSTOREDPROC DATASOURCE="datasource" PROCEDURE="deletePosition"> 
     <CFPROCPARAM CFSQLTYPE="cf_sql_integer" DBVARNAME="varID" VALUE="#varID#"> 
</CFSTOREDPROC> 

Stored Procedure:

   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 is being passed in and this is the error that it's generating:

Error Executing Database Query.

Parameter index of 2 is out of range (1, 1)
SQL   {call deletePosition( (param 1) , (param 2) )}
SQLSTATE      S1009

According to my network guy, the drives are close to being up to date.

Thanks in advance.

Was it helpful?

Solution

Looking at your SQL, it looks like you only have a single varID? Does your SP accept 1 parameter or 2? If just one, then this should work:

call deletePosition (1)

I haven't used Cold Fusion in a while, but this is one way I remember calling SPs:

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

Does that work?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top