Informix Error # 9752
Posted in 2017
Topics: Stored Procedures & SPL, Connectivity: ESQL/C, 4GL & Embedded SQL, Security, Permissions & Auditing
I am trying to call a Stored Procedure from 4gl application. The Stored
Procedure has INOUT and OUT Parameters. I get the 9752 error when trying to
execute the 4gl. I have never used INOUT or OUT parameters. I have always
returned the values but I am being asked to use the INOUT and OUT Parameters.
Can someone provide an example of a Stored Procedure with OUT parameter and
the 4gl code used to Execute the Stored Procedure. I am including the stored
procedure and 4gl code below:
STORED PROCEDURE:
CREATE PROCEDURE
"informix".get_furn_cast_number(
INOUT f_furnace_id CHAR(2),
f_cast_number CHAR(6),
f_drop_number CHAR(2),
f_insert_datetime DATETIME YEAR TO SECOND)
RETURNING SMALLINT
DEFINE row_count SMALLINT;
LET row_count = 0;
SELECT COUNT(*)
INTO row_count
FROM furn_cast_number
WHERE furnace_id = "12";
IF row_count = 0
THEN
LET f_furnace_id = "0";
LET f_cast_number = "0";
LET f_drop_number = "0";
LET f_insert_datetime = NULL;
LET row_count = 99;
RETURN row_count;
ELSE
SELECT fcn.furnace_id, fcn.cast_number, fcn.drop_number, fcn.insert_datetime
INTO f_furnace_id, f_cast_number, f_drop_number, f_insert_datetime
FROM furn_cast_number fcn
WHERE furnace_id = "12";
RETURN row_count;
END IF;
END PROCEDURE;
GRANT EXECUTE on procedure "informix".get_furn_cast_number to "public" as"info"
/usr/Informix
4GL:
DATABASE ch_test
MAIN
DEFINE
ret_value SMALLINT,
f_furnace_id CHAR(2),
f_cast_number CHAR(6),
f_drop_number CHAR(2),
f_insert_datetime DATETIME YEAR TO SECOND
LET ret_value = NULL
LET f_furnace_id = NULL
LET f_cast_number = NULL
LET f_drop_number = NULL
LET f_insert_datetime = NULL
LET f_furnace_id = "12"
PREPARE st_proc FROM "EXECUTE PROCEDURE get_furn_cast_number(?,?,?,?)"
DECLARE c_proc CURSOR FOR st_proc
OPEN c_proc USING f_furnace_id, f_cast_number,
f_drop_number, f_insert_datetime
FETCH c_proc INTO ret_value
DISPLAY "furnace_id = ", f_furnace_id
DISPLAY "cast_number = ", f_cast_number
DISPLAY "drop_number = ", f_drop_number
DISPLAY "insert_datetime = ", f_insert_datetime
DISPLAY "ret_value = ", ret_value
END MAIN