Lo soluciones agregandole :
Params.Clear;
ParamCheck := false;
ExecSQL;
a un IBQuery.
Código:
with IBQuery1 do
begin
sql.Clear;
sql.Add('CREATE PROCEDURE PROCEDIMIENTO_PRUEBA');
sql.Add('AS DECLARE VARIABLE CODANE VARCHAR(16);');
sql.Add('DECLARE VARIABLE NOMBRE VARCHAR(100);');
sql.Add('AS BEGIN');
sql.Add('SELECT CODIGO_DANE, ESTAB_NOMBRE');
sql.Add('FROM ESTABLECIMIENTOS');
sql.Add('INNER JOIN NUCLEOS ON (ESTAB_NUC_NUMERO=NUC_NUMERO)');
sql.Add('INNER JOIN SECRETARIAS ON (NUC_SEC_CODIGO=SEC_CODIGO)');
Script.Add('INNER JOIN MUNICIPIOS ON (SEC_MUN_CODIGO=MUN_CODIGO)');
sql.Add('WHERE (MUN_CODIGO = ''70001'')');
sql.Add('FOR SELECT ESTAB_CODIGO_DANE, ESTAB_NOMBRE');
sql.Add('FROM ESTABLECIMIENTOS');
sql.Add('INNER JOIN NUCLEOS ON (ESTAB_NUC_NUMERO=NUC_NUMERO)');
sql.Add('INNER JOIN SECRETARIAS ON (NUC_SEC_CODIGO=SEC_CODIGO)');
sql.Add('INNER JOIN MUNICIPIOS ON (SEC_MUN_CODIGO=MUN_CODIGO)');
sql.Add('WHERE (MUN_CODIGO = ''70001'')');
sql.Add('INTO :CODANE, :NOMBRE DO');
sql.Add('BEGIN');
sql.Add('UPDATE TEMP_EVAL_INT_GRAF_ADMIN');
sql.Add('SET ESTAB_NOMBRE = :NOMBRE');
sql.Add('WHERE CODIGO_DANE =:CODANE;');
sql.Add('SUSPEND;');
sql.Add('END');
Params.Clear;
ParamCheck := false;
ExecSQL;
end;
Estoy abierto a cualquier otra sugerencia.....