FireDAC 和 Sqlite 四:排序

0051.jpg


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;


标签:DelphiFireDAC

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://evelee.net/blog/?id=70