Ver Mensaje Individual
  #4  
Antiguo 21-12-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

El código de error SQLCODE -104, puede ser provocado por varios motivos: SQLCODE and GDSCODE Error Codes and Descriptions.
Revisa cuál de las descripciones de los códigos GDSCODE se aproxima mas al error que pueda estar generando tu código SQL; mas no te puedo decir sin haberlo visto.


Sin embargo, hice dos procedimientos muy elementales para poder probar la modificación del procedimiento cuando existe la declaración EXECUTE PROCEDURE y desde Delphi se modifica sin generar errores:
Código Delphi [-]
...
begin
  IBSQL1.Close;
  IBSQL1.SQL.Clear;
  IBSQL1.SQL.Add('CREATE OR ALTER PROCEDURE FOO_MAIN( CANT INTEGER )');
  IBSQL1.SQL.Add('RETURNS( RESULT INTEGER )');
  IBSQL1.SQL.Add('AS');
  IBSQL1.SQL.Add('BEGIN');
  IBSQL1.SQL.Add('  WHILE ( CANT > 0 ) DO');
  IBSQL1.SQL.Add('  BEGIN');
  IBSQL1.SQL.Add('    RESULT = CANT;');
  IBSQL1.SQL.Add('    CANT = CANT - 1;');  // antes: CANT = CANT - 2;
  IBSQL1.SQL.Add('    EXECUTE PROCEDURE FOO( CANT );');
  IBSQL1.SQL.Add('    SUSPEND;');
  IBSQL1.SQL.Add('   END');
  IBSQL1.SQL.Add('END');
  IBSQL1.ExecQuery;
end;

Si tuviera que aventurar un motivo, revisaría el código en busca de alguna dependencia que lo pudiera provocar.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita