source upload
This commit is contained in:
105
contrib/mORMot/SQLite3/Samples/01 - In Memory ORM/Unit1.pas
Normal file
105
contrib/mORMot/SQLite3/Samples/01 - In Memory ORM/Unit1.pas
Normal file
@@ -0,0 +1,105 @@
|
||||
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.
|
||||
|
Reference in New Issue
Block a user