PDA

Ver la Versión Completa : usar generadores de firebird


totote
05-07-2007, 22:40:40
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,
Select Gen_ID(generador,0);
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:



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 edit.setfocus y no estaba bisiable lo modifique y listo ...