Using 'EXECUTE STATEMENT' with IBDAC and Firebird2.1
Posted: Wed 28 Jul 2010 22:15
I'm trying to 'execute' the following stored procedure:
CREATE PROCEDURE LOCATE (
TABLENAME Char(32),
COLUMNNAME Char(32),
FIELDVALUE Char(60) )
RETURNS (
"FOUND" Smallint )
AS
DECLARE VARIABLE RESULT CHAR(60);
BEGIN
RESULT = NULL;
EXECUTE STATEMENT 'SELECT DISTINCT ' || COLUMNNAME || ' FROM ' || TABLENAME || ' WHERE ' ||
COLUMNNAME || ' = ' ||''''||FIELDVALUE||'''' INTO RESULT;
IF (RESULT IS NOT NULL) THEN
FOUND=-1;
ELSE
FOUND=0;
SUSPEND;
END^
by using a IBCQuery component with the following SQL statement:
Select * from LOCATE(:TABLENAME, :COLUMNNAME,:FIELDVALUE);
When executed, I get the following error:
"Invalid argument in EXECUTE STATEMENT - cannot convert to string
At procedure 'LOCATE' line:13, col:1."
Does IBC components support the new 'EXECUTE STATEMENT' syntax?
Thanks,
Dennis
CREATE PROCEDURE LOCATE (
TABLENAME Char(32),
COLUMNNAME Char(32),
FIELDVALUE Char(60) )
RETURNS (
"FOUND" Smallint )
AS
DECLARE VARIABLE RESULT CHAR(60);
BEGIN
RESULT = NULL;
EXECUTE STATEMENT 'SELECT DISTINCT ' || COLUMNNAME || ' FROM ' || TABLENAME || ' WHERE ' ||
COLUMNNAME || ' = ' ||''''||FIELDVALUE||'''' INTO RESULT;
IF (RESULT IS NOT NULL) THEN
FOUND=-1;
ELSE
FOUND=0;
SUSPEND;
END^
by using a IBCQuery component with the following SQL statement:
Select * from LOCATE(:TABLENAME, :COLUMNNAME,:FIELDVALUE);
When executed, I get the following error:
"Invalid argument in EXECUTE STATEMENT - cannot convert to string
At procedure 'LOCATE' line:13, col:1."
Does IBC components support the new 'EXECUTE STATEMENT' syntax?
Thanks,
Dennis