![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#3
|
|||
|
|||
|
Para no perder el consecutivo yo hago lo siguiente:
Hice un "trigger before insert" y es ahi donde ejecuto el Id = Gen_Id(<NombreGenerador>, 1); y tengo entendido que solo se va a ejecutar cuando realmente se este insertando en la tabla el codigo me queda asi (aunque no lo se poner entre "quote:") CREATE TRIGGER SETFOLIO FOR ORDENGAS ACTIVE BEFORE INSERT POSITION 0 as begin new.folio = gen_id(folio_gen,1); end y como usualmente nesecitamos saber cual es la clave para regresarla a la pantalla o imprimirlo, yo lo soluciono con un procedimiento que es el encargado de insertar los datos a la tabla: ALTER PROCEDURE APPENDORDEN (CARRO SMALLINT, PLACAS VARCHAR(10), KILOMETROS INTEGER, SUCURSAL INTEGER, CHOFER VARCHAR(30), AUTORIZO VARCHAR(30), TIPO VARCHAR(10)) RETURNS (FOLIO INTEGER) AS begin insert into ordengas(carro, placas,kilometros,sucursal,chofer,autorizo,tipo) values (:carro, lacas,:kilometros,:sucursal,:chofer,:autorizo,:tipo);folio=gen_id(folio_gen,0); end como veran, este es el procedimiento que llamo cuando inserto un nuevo registro; le paso los valores validados previamente para que halla menos posibilidades de error y el procedimiento al tratar de insertar los datos en la tabla se dispara el trigger SETFOLIO el cual aumenta el generador y me asigna el valor en el campo folio, para despues retornar el valor de el numero de folio desde el mismo procedimiento... ...Como se pone el codigo entre rayitas??? ![]() |
|
|
|