前边的例01和例02分别展示了静态服务器及嵌入式SQLite3服务器的实现方法,例03是命名管道客户端-服务器,例01中用JSON文件存储数据(按我的理解,每一个SQLRecord就是一个表格,在存储的时候多个表格应该需要多个JSON文件取存储),例02中使用SQLite3数据库存储,只需要一个.db3数据库文件就能存放所有的SQLRecord(表格),例03中实现了客户端-服务器的通讯,客户端的数据需要传递到服务器去处理.
先看看服务器是怎么运行的,例03主单元Unit2.pas实现了命名管道服务器,在代码中看比较方便,省略了部分代码,只看主要的部分:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
// 下方是mORMot单元
SynCommons, mORMot, mORMotSQLite3, SynSQLite3Static, StdCtrls, SampleData;
type
TForm1 = class(TForm)
{ ...(省略) }
public
Model: TSQLModel; { 声明SQL操作模型 }
Server: TSQLRestServerDB; { 服务器的声明 }
end;
{ ...(省略) }
implementation
{$R *.dfm}
{ ...(省略) }
procedure TForm1.FormCreate(Sender: TObject);
begin
Model := CreateSampleModel; { 窗口创建的时候初始化数据库操作模型 }
Server := TSQLRestServerDB.Create(Model, ChangeFileExt(ExeVersion.ProgramFileName, '.db3')); { 初始化一个Rest服务器,这里和样例2是一样的 }
Server.Crea