Ver Mensaje Individual
  #2  
Antiguo 19-10-2005
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Reputación: 21
defcon1_es Va por buen camino
Hola.
Me parece que el fallo te lo da en la linea:
Código SQL [-]
  SET GENERATOR VALE_GENER TO 100000;
Es una instrucción DDL (Data Definition Language), y en triggers y proc. almacenados no se pueden usar instrucciones DDL, sólo DML (Data Manipulation Language)

Código SQL [-]
SET TERM ^;
CREATE PROCEDURE CREACOD_VALE(V_ANO Varchar(4), V_MES Varchar(2))
RETURNS (CODIGO VARCHAR(12))
AS
DECLARE VARIABLE COD_VALE NUMERIC ;
DECLARE VARIABLE P_ANO VARCHAR(4);
DECLARE VARIABLE P_MES VARCHAR(2);
BEGIN
  SELECT ANO, MES 
  FROM UTILITARIOS 
  INTO :P_ANO, :P_MES;
 
  IF (:P_MES <> :V_MES) THEN
  BEGIN
    INSERT INTO UTILITARIOS(ANO, MES) VALUES(:V_aNO, :V_MES);
    SET GENERATOR VALE_GENER TO 100000; //Esto no lo puedes hacer dentro de un Stored Procedure ...
  END
 
  COD_VALE := GEN_ID(VALE_GENER,1);
  CODIGO = :V_ANO||:V_MES||CAST(COD_VALE AS CHAR(6));
END ^
SET TERM; ^
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita