Cita:
Empezado por apicito
No me graba nada. Ni cuando modifico un registro existente ni al crear uno nuevo.
En el caso de ser un alta, como cojo un autoincremnetal desde un generador para clave primaria?
|
Me auto respondo.
Si que graba, el problema esta en el autoinclemental. Como no he encontrado nada en DBExpress me he creado una función global y cojo el autoinckemental desde mi aplicación y no desde el generador de la base de datos:
Código Delphi
[-]
function getAutoincremental : integer;
begin
result := Round((now() - 25569) * 86400);
end;
Hasta ahora había utilizado los componentes IbObjects que permite crear el auto incremental metiendole en la propiedad GeneratorLinks el valor adecuado:
Código Delphi
[-] QueryFras.GeneratorLinks.Clear;
QueryFras.GeneratorLinks.Text:='FRAS_CODIGO=FRAS';
donde FRAS es un generador de la base de datos.
Ahora voy a investigar como se manejan las transacciones con DBExpress. Por que noto que cuando vuelvo del formulario de edición y hago refresh del ClientDataSet del DBGrid no me muestra el valor que acabo de introucir, sino el de la anterior modificación, como si solo cerrara la transacción cuando destruyo el formulario.