// uses FireDAC.Phys.SQLite 之后, 可不用添加 TFDPhysSQLiteDriverLink           //访问SQLite  文件数据库
procedure TMainForm.UniEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    FDQuery1.ExecSQL('INSERT INTO ToDoListTable VALUES( (select max(id)+1 from ToDoListTable),'''+uniEdit1.Text+''',0)');
    FDQuery1.Open('select isDone   ,aName ,id  from ToDoListTable');
    FDQuery1.Last;//定位 最后一行 新记录
  end;
end;

 在uniGUI,每个TFDConnection组件必须放在 MainModule或者 由uniGUI Wizard创建的DataModule里。TFDConnection也可创建和销毁公众 datamodule ,作为 TUniForm(因为他们对Session同样是私有的)的constructor 和destructor 。这将确保每个Session将有它自己私有的TFDConnection组件。

另外,要放一个TFDManager组件在ServerModule ,在ServerModule的OnCreate 事件里,设置它的Active 属性为True,。

其他要放在ServerModule 里的组件有: TFDGUIxWaitCursor 和TFDPhysXXXDriverLink。TFDPhysXXXDriverLink是根据你的数据库类型来的,例如,MySQL就应该为TFDPhysMySQLDriverLink。将TFDGUIxWaitCursor的Provider 设置为Console ,同时 ScreenCursor 设置为gcrNone.。

FDManager1的OnCreate 事件里, FDManager1.Active 应该设置为True.

procedure TUniServerModule.UniGUIServerModuleCreate(Sender: TObject);
begin
.
.
  FDManager1.Active := True;
end;

类似地,FDManager1的OnDestroy 事件,FDManager1.Close 应被调用。

procedure TUniServerModule.UniGUIServerModuleDestroy(Sender: TObject);
begin
.
.
.
  FDManager1.Close;
end;

 连接池

FireDAC 的一个高级特色,就是它支持连接池。它允许在多个会话里,共用同一个数据库连接.