PDA

Ver la Versión Completa : No puedo con un campo autonumerico


sercornejov
19-01-2005, 00:20:27
Hola.
La base de datos es Firebird 1.5, delphi 6.0 enterprice.

Lo que pasa es los siguiente:

grabo un record en la tabla visitas, la cual tiene un campo VTA_ID tipo integer, generado por la BD con un generator.

Todo eso sucede sin problemas. Una vez hace el post en la tabla VISITAS, debe llenar una tabla ADENTRO, la cual tiene un campo VTA_ID, integer, identico al de la tabla VISITAS. lo que sucede es que en la tabla adentro siempre graba un valor "0".

el código:


// llena la tabla de visitas

dmPpalEntrada.fbtblVisitas.Insert;
dmPpalEntrada.fbtblVisitasVTA_IN.Value:=now;
dmPpalEntrada.fbtblVisitasVIS_ID.Value:=StrToInt(edtId.Text);
dmPpalEntrada.fbtblVisitasEMP_ID.Value:=dmPpalEntrada.fbqryEmpXAreEMP_ID.Value;
dmPpalEntrada.fbtblVisitasVTA_OUT.Value:=now;
dmPpalEntrada.fbtblVisitasUSU_USUARIO.value:=UsuarioActualEntradaForma;
dmPpalEntrada.fbtblVisitas.Post;

// llena la tabla ADENTRO

dmPpalEntrada.fbtblAdentro.Insert;
dmPpalEntrada.fbtblAdentroVIS_ID.Value:=StrToInt(edtId.Text);
dmPpalEntrada.fbtblAdentroVIS_NOMBRE.Value:=edtVisNombre.Text;
dmPpalEntrada.fbtblAdentroARE_NOMBRE.Value:=dmPpalEntrada.fbtblAreaARE_NOMBRE.Value;
dmPpalEntrada.fbtblAdentroEMP_NOMBRE.Value:=dmPpalEntrada.fbqryEmpXAreEMP_NOMBRE.Value;
dmPpalEntrada.fbtblAdentroVTA_ID.Value:=dmPpalEntrada.fbtblVisitasVTA_ID.Value;
dmPpalEntrada.fbtblAdentro.Post;


luego debería tomar el valor del record de la tabla VISITAS, pero coloca "0"

Que estoy haciendo mal?

rastafarey
19-01-2005, 20:32:36
simplemente en un trigger before insert

poe codigo

as
begin
if (new.elcampo is null) then
new.elcampo = gen_id(elgeneradordelcampo, 1).
end



esto te lo soluciona