Ver Mensaje Individual
  #31  
Antiguo 16-01-2014
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 416
Reputación: 15
bulc Va por buen camino
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
Responder Con Cita