![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Quitar el valor al campo primary key
Primero relleno el campo en el DBGrid para que no salte el error debido a ausencia de dato en clave primaria (NUM).
Para ello saco el valor del generador sin alterarlo. Uso un Query con: Select gen_id( Gen_Name,0) from rdb$database Luego lo guardo como valor de salida con: Result :=Query1.Fields[0].AsInteger // en una función. Luego aplico el evento BeforePost para controlar los valores que van al ClientDataSet. En el intento de que el Trigger haga su papel, quiero vaciar el campo NUM que el de clave primaria. Utilizo en ese evento esto: IBDataSourcex.DataSet.FieldByName('NUM').AsInteger := NULL; pero me da un error. Y si lo dejo lleno -el valor está incrementado- y además es correcto. Pero el generador no salta (+1) por insertar dato en ese campo. ¿Entiendes lo paradógico del caso? Uno parece que se explica pero luego el lector no se aclara. Muy de risa. ¿Qué se te ocurre? ¿Por dónde me voy? Gracias por tu tiempo. Un saludo, bulc |
|
#2
|
||||
|
||||
|
Creo que va a ser difícil que desde el programa delphi dejes el valor de la pk a nulo. Creo que siempre te dará error. Los triggers que ponen la clave con el valor de un generador te funcionarán desde el ibexpert o desde el isql.
Si desde el programa cliente quieres recuperar el valor de la pk generado por el trigger, le tienes que decir que el campo no es requerido y después de hacer la excritura hacer un refresh de ese registro. Ahora, no sé si será capaz de recuperar el registro, ya que lo guardas con la pk en blanco , el motor le asigna un valor y luego te lo devuelve. No sé si habrá alguien que pueda aportar otra experiencia, esta es la mía. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
#3
|
||||
|
||||
|
Hola bulc.
Solo a fin de responder al título de tu mensaje #30, el método Clear lo hace. Un ejemplo:
Saludos ![]()
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
#4
|
||||
|
||||
|
Gracias egfisa
Muchas gracias por tu apunte, egfisa
bulc |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| esta function no me funciona en XE2 y si funciona en D6 | darkbits | Varios | 1 | 06-11-2012 17:00:45 |
| IP de la PC en Trigger | noelia89 | Firebird e Interbase | 5 | 04-09-2012 17:03:41 |
| Trigger en Firebird no funciona | payo7 | SQL | 2 | 06-11-2011 00:19:24 |
| funciona bien en windows 7 64b pero en XP no funciona | ASAPLTDA | Varios | 5 | 06-05-2011 16:24:50 |
| Un trigger que dispara un procedimiento que dispara un trigger... | sitrico | Firebird e Interbase | 5 | 04-06-2007 22:05:13 |
|