|
¿Cómo asignar a NULL un campo? o algo así....
Me funciona el GENERATOR y el trigger asociado a él. Pero como el campo NUM Integer lleva la clave primaria, resulta que si se deja vacío da error al salir de la edición del DBGrid.
Ejecuto el generador (sin modificarlo) con:
SELECT GEN_ID(GEN_NAME_TABLE, 0) FROM RDB$DATABASE;
//Recojo el dato
//Luego lo asigno al campo NUM del DBGrid. Para ello uso el DBDataSource con la línea:
DataSourcex.DataSet.FieldByName('NUM').AsIngeger := Value_Generator;
Lo compruebo en el evento BeforePost. Y es ahí cuando salta el error motivado por la asignación a NULL del campo.
DataSourcex.DAtaSet.FieldByName('NUM').AsInteger := NULL,
Lo hago así para no entregar al TIBQuery ese campo en el intento de que así salte el Trigger y rellene el campo con el número siguiente al que guarda el generador.
Entiendo que dicho campo se ha de dejar vació para ello.
Osea que estoy en un lío.
Con anterioridad había usado una tabla de control secundaria para llevar a cabo los autoincrementos y me iba bien. Pero he querido usar los triggers y ya ves.
Reitero:
Osea primero pongo un nº en el DBGrid y luego lo quito para llevarlo al servidor y que salte el Trigger. ¿Es lo correcto?
Saludos, bulc
|