![]() |
Stored Procedure genera codigo
Hola Amigos, estoy desarrollando una Stored Procedure que genera un codigo basado en tres elementos:
año + mes + numero de un generador. como variables de estrada tiene: V_ANO VARCHAR(4) V_MES VARCHAR(2) Estas corresponde al proceso con Delphi de la Instruccion 'Now' por lo que contiene el año y mes actual. Una tabla 'Utilitarios' tiene los campos ano, mes que guardan el año y el mes sin actualizar. El Stored Procedure verifica si la fecha de la tabla Utilitarios es diferente a la actual. Y si lo es, la actualiza y coloca el generador a 100000 que el numero inicial. Pues bien al compilar de un script con IbEasy me manda un mensaje de error : "SET" COMPOSICION DE LINEA DESCONOCIDA. Aqui va la stored procedure. 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 END COD_VALE := GEN_ID(VALE_GENER,1) CODIGO = :V_ANO||:V_MES||CAST(COD_VALE AS CHAR(6)) END ^ SET TERM; ^ Favor ayudarme a resolver este problema. Gracias. |
Hola.
Me parece que el fallo te lo da en la linea: 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)
|
si estas usando firebird 1.5 puedes usar lo siguiente
en versiones anteriores no existe execute statement |
La franja horaria es GMT +2. Ahora son las 03:57:01. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi