Firedac是Delphi开发跨平台的数据库应用程序的通用数据访问组件,同样适用于C++ Builder和FreePascal。这里是Firedac操作Sqlite的学习笔记。文中代码在Delphi 11中编译通过。
先将“FireDAC 和 Sqlite 一 :基本控件和设置”一篇中提到的常用控件加入Form,并做好关联。
SQLite 内部是按二进制排序, 可以支持 ANSI。 FireDAC 通过 TFDSQLiteCollation 支持了 Unicode 排序, 并可通过其 OnCompare 事件自定义排序。先向Form中加入FDSQLiteCollation控件,位置在FireDAC Services里。
procedure TForm1.Button1Click(Sender: TObject); begin FDSQLiteCollation1.DriverLink := FDPhysSQLiteDriverLink1;//也可以在该控件的属性里设置 FDSQLiteCollation1.CollationKind := scCompareString; //默认值Unicode 不区分大小写 FDSQLiteCollation1.LocaleName := 'zh-CN';//也可以在该控件的属性里设置 FDSQLiteCollation1.Flags := [sfIgnoreCase];//也可以在该控件的属性里设置 FDSQLiteCollation1.CollationName := 'MyCol';//下面所有的调用全要依赖这个名称 FDSQLiteCollation1.Active := True;//也可以在该控件的属性里设置 FDQuery1.Open('SELECT * FROM MyTable'); //不排序 FDQuery1.Open('SELECT * FROM MyTable ORDER BY Name'); //SQLite 内置排序 Name字段 FDQuery1.Open('SELECT * FROM MyTable ORDER BY Name COLLATE MyCol'); //FireDAC 排序 Name字段 end;