106 lines
2.0 KiB
ObjectPascal
106 lines
2.0 KiB
ObjectPascal
unit Unit1;
|
|
|
|
interface
|
|
|
|
uses
|
|
{$ifdef MSWINDOWS}
|
|
Windows,
|
|
Messages,
|
|
Graphics,
|
|
{$endif}
|
|
Classes, SysUtils, Forms, Controls, Dialogs, StdCtrls,
|
|
SynCommons,
|
|
SynTable,
|
|
mORMot,
|
|
SampleData;
|
|
|
|
type
|
|
|
|
{ TForm1 }
|
|
|
|
TForm1 = class(TForm)
|
|
AddButton: TButton;
|
|
Label1: TLabel;
|
|
Label2: TLabel;
|
|
QuitButton: TButton;
|
|
FindButton: TButton;
|
|
QuestionMemo: TMemo;
|
|
NameEdit: TEdit;
|
|
procedure AddButtonClick(Sender: TObject);
|
|
procedure FindButtonClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormDestroy(Sender: TObject);
|
|
procedure QuitButtonClick(Sender: TObject);
|
|
private
|
|
{ private declarations }
|
|
public
|
|
{ public declarations }
|
|
Database: TSQLRest;
|
|
Model: TSQLModel;
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
{$ifdef FPC}
|
|
{$R *.lfm}
|
|
{$else}
|
|
{$R *.dfm}
|
|
{$endif}
|
|
|
|
{ TForm1 }
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
begin
|
|
Model := CreateSampleModel; // from SampleData unit
|
|
end;
|
|
|
|
procedure TForm1.AddButtonClick(Sender: TObject);
|
|
var Rec: TSQLSampleRecord;
|
|
begin
|
|
Rec := TSQLSampleRecord.Create;
|
|
try
|
|
// we use explicit StringToUTF8() for conversion below
|
|
// a real application should use TLanguageFile.StringToUTF8() in mORMoti18n
|
|
Rec.Name := StringToUTF8(NameEdit.Text);
|
|
Rec.Question := StringToUTF8(QuestionMemo.Text);
|
|
if Database.Add(Rec,true)=0 then
|
|
ShowMessage('Error adding the data') else begin
|
|
NameEdit.Text := '';
|
|
QuestionMemo.Text := '';
|
|
NameEdit.SetFocus;
|
|
end;
|
|
finally
|
|
Rec.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.FindButtonClick(Sender: TObject);
|
|
var Rec: TSQLSampleRecord;
|
|
begin
|
|
Rec := TSQLSampleRecord.Create(Database,'Name=?',[StringToUTF8(NameEdit.Text)]);
|
|
try
|
|
if Rec.ID=0 then
|
|
QuestionMemo.Text := 'Not found' else
|
|
QuestionMemo.Text := UTF8ToString(Rec.Question);
|
|
finally
|
|
Rec.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.FormDestroy(Sender: TObject);
|
|
begin
|
|
Database.Free;
|
|
Model.Free;
|
|
end;
|
|
|
|
procedure TForm1.QuitButtonClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
end.
|
|
|