Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   usar generadores de firebird (https://www.clubdelphi.com/foros/showthread.php?t=45535)

totote 05-07-2007 22:40:40

usar generadores de firebird
 
buenas gente, alguien sabe como se hace para usar en delphi los generators de una db en firebird? :eek:

gabrielkc 06-07-2007 05:10:30

Los generadores los implementas directamente el la BD, generalmente los usas para el id de una tabla. Entonces creas un trigger en la tabla en el Before Insert para que le asigne el valor:

Create Trigger Nuevo_Registro for Tabla
Before Insert
as
Begin
New.Id=Gen_ID(Generador,1);
End

Si lo que quieres es hacer un select del valor de un generador........ si no mal recuerdo es:

Select Gen_ID(generador,0);

Delfino 07-07-2007 00:34:13

Si usas los IBX o MDO creo q es la propiedad GeneratorLink del dataset,
Cita:

Select Gen_ID(generador,0);
Código SQL [-]
Select Gen_ID(generador,0) from RDB$DATABASE

totote 08-07-2007 00:30:37

bueno gente, cree el trigger en la db, y funciona de maravilla, pero esto me lleva a otro problema.

Con este codigo:

Código Delphi [-]

  datamodule2.cdsClientes.Insert;
  datamodule2.cdsClientes.Append;
  datamodule2.cdsClientes.FieldByName('Nombre').AsString:= eNombre.Text;
  datamodule2.cdsClientes.FieldByName('Apellido').AsString:= eApellido.Text;
  datamodule2.cdsClientes.FieldByName('direccion').AsString:= eDir.Text;
  datamodule2.cdsClientes.FieldByName('telefono').AsString:= eTel.Text;
  datamodule2.cdsClientes.FieldByName('fecha_nacimiento').AsString:= eNac.Text;
  datamodule2.cdsClientes.FieldByName('documento').AsString:= eDoc.Text;
  datamodule2.cdsClientes.Post;
  datamodule2.cdsClientes.ApplyUpdates(0);

me salta este error:

"Cannot focus a disabled or invisible window"

que onda alguien sabe que es o de ultima como poder ingresar un nuevo registro, ah el pk es un campo que se llama id_clientes. saludos

eduarcol 08-07-2007 00:37:43

Estas tratando de darle el foco a un control que no esta visible o habilitado, el error no esta en el codigo que posteastes revisa con mas detalle

totote 08-07-2007 00:44:03

pero si le pongo al codigo ese un datamodule2.cdsClientes.FieldByName('id_clientes').AsString:= '25';

no me tira ningun error, el tema es que vuelvo al problema de no poder ingresar un campo y que el id q es auto incremental se auto incremente

eduarcol 08-07-2007 00:49:12

sigo pensando que el error no esta en ese codigo

bothy 22-04-2010 18:56:27

hola es muy sierto lo que dise eduarcol ami tambien me tiraba ese error y lo que pasaba es que tenia un
Código Delphi [-]
edit.setfocus
y no estaba bisiable lo modifique y listo ...


La franja horaria es GMT +2. Ahora son las 21:13:53.

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