program project1;
{$mode objfpc}{$H+}
uses
db, fpjsondataset;
Procedure DumpDataset(DS : TDataset);
Var
I,J : Integer;
begin
I:=0;
Writeln('Dataset contains ',DS.RecordCount,' records');
While not DS.EOF do
begin
Inc(I);
Writeln('=== Record ',I,' : ',DS.RecNo,' ===');
For J:=0 to DS.Fields.Count-1 do
With DS.Fields[J] do
Writeln(FieldName,' : ',AsString);
DS.Next;
end;
Writeln('Dataset contained ',I,' records');
end;
Var
DS : TExtjsJSONObjectDataset;
I,J : Integer;
F : TFieldDef;
const
FILE_NAME = 'test.json';
begin
DS:=TExtjsJSONObjectDataset.Create(Nil);
try
With DS do
begin
FieldDefs.Add('ID',ftLargeint,0);
FieldDefs.Add('Name',ftString,20);
FieldDefs.Add('Email',ftString,30);
Open;
// Record 1
Append;
FieldByName('ID').AsInteger:=3;
FieldByName('Name').AsString:='Michael';
FieldByName('Email').AsString:='michael@freepascal.org';
Post;
// Record 2
Append;
FieldByName('ID').AsInteger:=4;
FieldByName('Name').AsString:='jonas';
FieldByName('Email').AsString:='jonas@freepascal.org';
Post;
DumpDataset(DS);
First;
// insert record 1
Insert;
FieldByName('ID').AsInteger:=1;
FieldByName('Name').AsString:='Florian';
FieldByName('Email').AsString:='Florian@freepascal.org';
Post;
DumpDataset(DS);
Writeln('First');
First;
Writeln('Editing record ', RecNo,' ',FieldByName('Name').AsString);
Edit;
FieldByName('ID').AsInteger:=12;
FieldByName('Name').AsString:='Marco';
FieldByName('Email').AsString:='Marco@stack.nl';
Post;
First;
DumpDataset(DS);
First;
Next;
Writeln('Deleting record ', RecNo,' ',FieldByName('Name').AsString);
Delete;
First;
DumpDataset(DS);
SaveToFile(FILE_NAME, True);
end;
finally
DS.Free
end;
ReadLn;
end.