
program Project01; uses {$I SynDprUses.inc} // use FastMM4 on older Delphi, or set FPC threads Forms, SysUtils, SynCommons, mORMot, Unit1 in 'Unit1.pas' {Form1} ,mORMotSQLite3, SynSQLite3Static ; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Form1.Caption := ' Sample 01 - In Memory ORM'; Form1.aSQLRest := TSQLRestServerDB.Create(Form1.aSQLModel, ChangeFileExt(ExeVersion.ProgramFileName,'.db3'));//系统会 在起始时加载Projet01.db3 TSQLRestServerDB(Form1.aSQLRest).CreateMissingTables; Application.Run; end.
unit Unit1; interface uses {$ifdef MSWINDOWS} Windows, Messages, Graphics, {$endif} Classes, SysUtils, Forms, Controls, Dialogs, StdCtrls, SynCommons, SynTable, mORMot; type TSQLSampleRecord = class(TSQLRecord) //表名 SampleRecord private //系统默认有ID列 fName: RawUTF8; fInfo: RawUTF8; published property Name: RawUTF8 read fName write fName; //Name列 property Info: RawUTF8 read fInfo write fInfo; //Info列 end; { 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 } aSQLRest: TSQLRest; aSQLModel: TSQLModel; end; var Form1: TForm1; implementation {$ifdef FPC} {$R *.lfm} {$else} {$R *.dfm} {$endif} procedure TForm1.FormCreate(Sender: TObject); begin aSQLModel :=TSQLModel.Create([TSQLSampleRecord]); end; procedure TForm1.AddButtonClick(Sender: TObject); var Rec: TSQLSampleRecord; begin Rec := TSQLSampleRecord.Create; try Rec.Name := StringToUTF8(NameEdit.Text); Rec.Info := StringToUTF8(QuestionMemo.Text); if aSQLRest.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(aSQLRest,'Name=?',[StringToUTF8(NameEdit.Text)]); try if Rec.ID=0 then QuestionMemo.Text := 'Not found' else QuestionMemo.Text :=stringreplace(UTF8ToString(Rec.Info), 'Z~!~', #13#10, [rfReplaceAll]) ; finally Rec.Free; end; end; procedure TForm1.FormDestroy(Sender: TObject); begin aSQLRest.Free; aSQLModel.Free; end; procedure TForm1.QuitButtonClick(Sender: TObject); begin Close; end; end.
分类:
Delphi2010
, mORMot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本