![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Si lo das de alta, el generador avanza, aunque luego lo canceles.
Supongo que con "cancelar" te refieres a hacer un rollback. Pero el 'beforeinsert' ya se ha ejecutado y ha avanzado el generador.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#2
|
|||
|
|||
|
Cita:
Saludos
__________________
Salu2 |
|
#3
|
||||
|
||||
|
¿ Estas totalmente seguro que no llamas a estos mismos generadores en ningún otro sitio ?.
¿ Quizás en algunto evento AfterPost en Delphi ?.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
#4
|
|||
|
|||
|
Probe directo en IBExpert y obviamente ahi todo va bien. En delphi sigue igual.
las unicas lineas de codigo que tengo en el IBDataSet ligado a tabla AYUDANTES es: procedure TDataModule2.IBAyudantesAfterCancel(DataSet: TDataSet); begin DataModule2.IBTransaction1.RollbackRetaining; end; procedure TDataModule2.IBAyudantesAfterDelete(DataSet: TDataSet); begin DataModule2.IBTransaction1.CommitRetaining; end; procedure TDataModule2.IBAyudantesAfterPost(DataSet: TDataSet); begin DataModule2.IBTransaction1.CommitRetaining; end; procedure TDataModule2.IBAyudantesNewRecord(DataSet: TDataSet); begin IBAyudantesCVEPERSONA.Value:=IBPersonasCVEPERSONA.Value; end;//Esta linea es porq es una tabla detalle de la tabla maestra "PERSONAS" En el IBDatabase y el IBTransaction al que esta ligado no he puesto una linea de codigo. No se si sea alguna propiedad que deba modificar o que. Disculpen mi ignorancia pero es la primera vez que trabajo con Firebird.
__________________
Salu2 |
|
#5
|
||||
|
||||
|
El disparador no valida si el campo ya viene con valor. Una buena práctica es añadir un If al código del disparador para no darle valor al campo si éste ya trae uno.
Tcmn no ha dicho qué componentes de acceso está utilizando, pero según lo que comenta sobre las altas y los cancels, estoy casi seguro que: 1. Usa un evento OnNewRecord / AfterInsert de esos componentes para llamar al generador. o bien: 2. Está utilizando IBX con la propiedad GeneratorField.ApplyEvent = gamOnNewRecord (lo cual no es mala idea). Si fuera lo anterior, para resolver el problema creo que bastaría con añadir el clásico "IF (NEW.ID IS NULL) THEN" a los disparadores. A menos que a Tcmn le interese que esas claves sean consecutivas (algo que no debería ser requisito en una llave primaria ).Saludos. ![]() Al González. P.D. Acabo de ver su nuevo comentario donde nos indica que sí está utilizando IBX. Tcmn, ¿cómo estás utilizando la propiedad GeneratorField del componente de datos?
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. Última edición por Al González fecha: 06-10-2010 a las 21:00:58. |
|
#6
|
|||
|
|||
|
Asi es el asunto era poner On server en la propiedad que dice Al Gonzalez.
Asunto solucionado muchas gracias y saludos
__________________
Salu2 |
|
#7
|
||||
|
||||
|
En el futuro no está de más hacer los triggers como ha propuesto Al (te habrías ahorrado este problema, aunque es mejor haberlo tenido y saber exactamente donde estás asignando la clave primaria).
Es decir :
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
#8
|
||||
|
||||
|
O bien, si te gusta más esta sintaxis :
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Escanear Doble Cara, Doble Lector | karenthyuliana | Gráficos | 2 | 11-04-2008 18:29:42 |
| Incrementa el porcentaje y no imprime. | zugazua2001 | Impresión | 1 | 19-05-2006 09:59:19 |
| generador | novaten | Conexión con bases de datos | 1 | 09-04-2005 22:29:44 |
| Campo clave incrementa | Marcosr_87 | SQL | 8 | 22-11-2004 00:24:37 |
| como puedeo incrementa un campo auto numerico | simon | Conexión con bases de datos | 1 | 01-06-2004 21:55:12 |
|