FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Duda de Autoincrement firebird
buenas tardes tengo, un Generador en firebird y un campo integer en una tabla con su propiedad autoincrement habilitada y configurada con dicho generador.
El problema es que no se como hacer para que el usuario al momento de guardar un registro desde una interfaz en delphi me incremente automaticamente este campo; La informacion suministrada por el usuario la guardo, edito y elimino con un TDBnavigator los registros los muestro en componentes TDBEdit. muchas gracias.
__________________
JaiMelendez |
#2
|
||||
|
||||
El usuario no debe incrementar nada, debe hacerlo la base de datos automáticamente en un trigger o store procedure, o lo ejecutas tú mismo desde el programa delphi.
|
#3
|
||||
|
||||
que componente estás usando para hacer el insert?
|
#4
|
||||
|
||||
Creo que no te entiendo
Échale un vistazo a la sección de "Generadores" del libro de Marteens, La cara oculta de delphi. Lo encontrarás en el ftp del clubdelphi o aquí. |
#5
|
||||
|
||||
Si usa ZeosLib, DBX, DBExpress...
|
#6
|
||||
|
||||
FIBplus.
Pero eso no tiene nada que ver con los generadores. |
#7
|
||||
|
||||
Si usa IBX, tiene la propiedad GeneratorField donde define el generador y el campo que recibe el valor.
Si usa ZeosLib tiene el componente TZSequence que se enlaza con el generador y el componente que hace el insert. Entonces si usa un TZQuery en la propiedad Sequence se pone el TZSequence y en SequenceField el campo que recibe el valor. Es menos trabajo y más prolijo que escribir un Trigger o SP. Saludos. |
#8
|
||||
|
||||
Sí, FIBplus también tiene algo similar, aunque no recuerdo haberlo usado, prefiero dejar a la BD que se encargue de hacerlo mediante un trigger.
|
#9
|
||||
|
||||
la ventaja de los generadores, y en especial que los emplee la BD por si sola, es que no te vas a encontrar con duplicados, a no ser que SI le metas mano externamente al motor de esta; yo personalmente no lo haria, pues ya me he encontrado con mas de una violation por esto
__________________
online |
#10
|
|||
|
|||
Cita:
El insert lo hace el dbnavigator. muchas gracias
__________________
JaiMelendez |
#11
|
||||
|
||||
Cita:
La ventaja de usar los componentes y por la cual deje de usar los trigger es que con el componente puedo saber cual es el valor generado antes de hacer el insert. |
#12
|
||||
|
||||
Hola, justo el TIBTable no tiene esa propiedad, tendrías que usar un trigger. Ahora no tengo uno como para pasarte de ejemplo. Pero cuando llegue a mi casa te subo un ejemplo. En dos horas mas o menos.
Saludos. |
#13
|
||||
|
||||
Acá va un ejemplo de trigger
Lo que hace es, si codigo es nulo, genera un valor, con el genereador NRO_ARTICULO, y se lo asigna a CODIGO. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
AutoIncrement Firebird | Ubed | Conexión con bases de datos | 7 | 21-05-2014 17:21:41 |
Una duda en Firebird | Mauro Daniel | Firebird e Interbase | 3 | 20-06-2008 09:02:06 |
Duda en sentencia de firebird | vivamotos | Firebird e Interbase | 6 | 10-09-2007 11:17:18 |
AutoIncrement de Firebird | alucardo | Firebird e Interbase | 2 | 15-06-2006 19:03:20 |
Duda acerca de Firebird | joanajj | Conexión con bases de datos | 2 | 13-05-2006 05:03:18 |
|