pape19,
Cita:
Empezado por pape19
...en Delphi XE5...utilizo Datasnap, que se conecta a un servidor remoto...Lo que quiero lograr es alguna forma de guardar los datos de esa sesión localmente...
|
Revisa este código:
Código Delphi
[-]
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.ListView.Types, FMX.StdCtrls, FMX.ListView, Data.DB, Datasnap.DBClient,
FMX.Layouts, FMX.ListBox;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
Status : Array[0..1] of Boolean = (False, True);
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
var
Table : TClientDataset;
i : Integer;
begin
Randomize;
Table := TClientDataset.Create(nil);
Table.FieldDefs.Add('CodUser', ftInteger, 0, False);
Table.FieldDefs.Add('NameUser', ftString, 50, False);
Table.FieldDefs.Add('Date', ftDate, 0, False);
Table.FieldDefs.Add('Status', ftBoolean, 0, False);
Table.CreateDataset;
Table.Open;
Randomize;
for i := 1 to 10 do
begin
Table.Append;
Table.FieldByName('CodUser').AsInteger := i;
Table.FieldByName('NameUser').AsString := 'Name-' + IntToStr(Random(100));
Table.FieldByName('Date').AsDateTime := Now + Random(730);
Table.FieldByName('Status').AsBoolean := Status[Random(2)];
Table.Post;
end;
Table.SaveToFile(ExtractFilePath(ParamStr(0)) + 'Table.cds');
Table.Close;
Table.Free
end;
procedure TForm1.Button2Click(Sender: TObject);
var
Table : TClientDataset;
i : Integer;
S : String;
begin
Table := TClientDataset.Create(nil);
Table.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Table.cds');
Table.Open;
Table.First;
ListBox1.Clear;
while not Table.Eof do
begin
S := Format('%s %s %s %s', [Table.FieldByName('CodUser').Value,
Table.FieldByName('NameUser').Value,
Table.FieldByName('Date').Value,
Table.FieldByName('Status').Value]);
ListBox1.Items.Add(S);
Table.Next;
end;
Table.Close;
Table.Free
end;
end.
El código anterior en Delphi XE7 sobre Windows 7 Professional x32,
Ejemplifica el uso en FMX del componente TClientDataset para generar, guardar y leer información de la aplicación, como se muestra en la siguiente imagen:
Espero sea útil
Nelson.