Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   No puedo con un campo autonumerico (https://www.clubdelphi.com/foros/showthread.php?t=17702)

sercornejov 19-01-2005 00:20:27

No puedo con un campo autonumerico
 
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:

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
Código:

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


esto te lo soluciona


La franja horaria es GMT +2. Ahora son las 03:30:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi