Funcion de autoincremento
Pura vida foreros!!
Trabajo con firebird Tabla: Factura Campo: ID_factura(llave primaria) Mi consulta es esta: Quiero crear una función que me cree automáticamente el ID_factura en la Tabla Por ejemplo cada ves que yo guarde en la Tabla, llamar esta función para que autoincremente el ID_factura sin repetirlo por ser una llave primaria He buscado durante un buen rato en google he escudriñado aquí también pero no encuentro nada… me encantarían que me ayuden con este problemita… Desde Costa Rica un Aprendiz les Agradece Pura vida foreros!! Trabajo con firebird Tabla: Factura Campo: ID_factura(llave primaria) Mi consulta es esta: Quiero crear una función que me cree automáticamente el ID_factura en la Tabla Por ejemplo cada ves que yo guarde en la Tabla, llamar esta función para que autoincremente el ID_factura sin repetirlo por ser una llave primaria He buscado durante un buen rato en google he escudriñado aquí también no se si he buscado lo suficiente pero no encuentro nada… me encantarían que me ayuden con este problemita… Desde Costa Rica un Aprendiz les Agradece |
Lo que tu estás buscando se consigue con un generador y un trigger:
Un ejemplo de un generador:
Un generador pemite llevar ese incremento. Y puede, si se desea, indicarle un valor inicial:
En el ejemplo vale 145. Y un ejemplo de un trigger: La función gen_id() recibe como parámetro un generador y un valor de incremento. En este caso de 1. El disparador (Trigger) se dispara antes de insertar (en este ejemplo). En tu caso debe ser AFTER INSERT. Entonces, antes de insertar en la tabla, se dispara el trigger, llama a la función gen_id() con el generador en cuestión. Al final del proceso, el valor obtenido es 146. Los ejemplos que te pasee fueron extraídos de la DB de ejemplo EMPLOYEE que acompaña a la instalación de Firebird. Sería bueno ahora darte una pequeña advertencia: el uso de los generadores violan el concepto de transaccionalidad. Es decir que si en una transacción se ejecutan dichos procesos, un rollback no volverá el valor hacia atrás. Deberás analizar efectivamente si el uso de los generadores es que estás buscando. Puesto que también hay otras maneras de conseguir este efecto. Saludos, |
¡Hola!
Además de la estupenda recomendación de Marcelo, recomiendo que tomes muy en cuenta estos dos mensajes sobre llaves primarias que escribí hace tiempo: http://www.clubdelphi.com/foros/show...3&postcount=14 http://www.clubdelphi.com/foros/show...66&postcount=2 Saludos. Al González. :) |
gracias por su ayuda es muy Enriquecedora para mi!!
Al Rodriguez Estube viendo tu ejemplo que dejaste en el enlase y diculpa mi ingnorancia soy nuevo y tengo poca experiencia me pueden decir donde pongo esto
|
Cita:
Por ello el tema de las facturas es, como he leído en otros hilos, un tema peliaduro (o algo así... no recuerdo la palabra exacta:D). Y debo admitir que a mi cada vez que se me pasa por la cabeza esos ejemplos (ese constante ejercicio que hago a diario) de facturas o algo similar se me plantean otra vez que es bueno hacer, que es malo... En fin, al final se trata de un análisis de la situación y del dominio. Por ello a mi me gusta apegarme a la regla: análisis primero, código después. Saludos, |
La franja horaria es GMT +2. Ahora son las 07:23:36. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi