PDA

Ver la Versión Completa : conservar valor de los campos


ebeltete
28-06-2007, 20:14:50
Hola amigos, estoy trabajando con Delphi 5, Firebird 2.0 y los componentes MDO, estoy con una BBDD y quisiera saber como hago para poder poner por defecto los valores de los campos del ultimo registro insertado, al momento de insertar un nuevo registro?
Hay alguna forma con old value y new value? otengo que crear variables globales?, salu2.

jhonny
28-06-2007, 20:21:24
Una forma sería guardando dichos valores en un archivo .ini para luego recuperarlos al traer de nuevo la forma.

O También haciendo un SQL que traiga siempre el ultimo registro en la BD para colocarlo por defecto en los respectivos Edits.

marcoszorrilla
28-06-2007, 23:04:42
No está de más recordar el Truco 176 de TRUCOMANIA:


A veces es interesante poder añadir un registro y que este aparezca ya 'relleno' con los ultimos datos que se teclearon. Este código funciona en
cualquier tabla (espero) :)




procedure TForm1.Button2Click(Sender: TObject);

type
{Tipos para array dinámico de variants}
TRecuerda = array[0..0] of variant;
PRecuerda = ^TRecuerda;
var
Recuerda:PRecuerda;
n:integer;
Campos:integer;
begin
{Reservamos memoria para el array}
Campos:=Table1.FieldCount;
GetMem(Recuerda, Campos * SizeOf(variant));

{Vamos al ultimo registro}
Table1.Last;
{Recordamos los campos}
for n:=0 to Table1.FieldCount-1 do
begin
Recuerda^[n]:=Table1.Fields[n].AsVariant;
end;

{Añadimos un registro}
Table1.Append;
{Lo rellenamos}
for n:=0 to Table1.FieldCount-1 do
begin
Table1.Fields[n].AsVariant:=Recuerda^[n];
end;
{Lo grabamos}
Table1.Post;

{Liberamos memoria}
FreeMem(Recuerda, Campos * SizeOf(Variant));
end;




Un Saludo.