首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

3.1.2  使用TSQLDataSet的排序特性

如果想要使用除了是主键值字段之外其他的字段来排序,可以使用TSQLDataSet控件的SortFieldNames特性值来指定。例如现在我们希望范例应用程序使用非键值SPECIES_NAME字段作为排序的字段,就可以使用对象查看器设定TSQLDataSet控件的SortFieldNames特性值(见图3-5)。

当程序员设定了TSQLDataSetSortFieldNames特性值后,TSQLDataSet执行CommandTextSQL语句时则会在SQL语句之后加上Order By的条件设定,我们从下面由TSQLMonitor显示的结果可以得知:

INTERBASE - isc_attach_database

INTERBASE - isc_dsql_allocate_statement

INTERBASE - isc_start_transaction

select * from biolife order by SPECIES_NAME

INTERBASE - isc_dsql_prepare

INTERBASE - isc_dsql_describe_bind

3-5  TSQLDataSet拥有SortFieldNames特性值允许程序员设定排序的字段

现在如果再次执行范例应用程序,那么我们就可以看到类似如图3-6所示的结果。从TDBGrid中可以看到现在数据表中的数据已经按照SPECIES_NAME字段的次序来排序了。

3-6  TSQLDataSetSortFieldNames特性设定排序字段之后,
数据便会依据这个特性值来排序

TSQLDataSetSortFieldNames特性除了可以如同刚才以一个字段来排序数据之外,程序员也可以使用SortFieldNames特性进行多个字段的排序。例如现在我们除了希望以SPECIES_NAME字段作为主排序之外,还希望再以SPECIES_NO字段作为第二排序的依据。要如此排序很简单,我们只要在SortFieldNames特性中输入这两个字段,并且使用“,”符号分隔每一个字段名称即可。例如在图3-7所示的对象查看器中的SortFieldNames特性输入了species_name,species_no数值,代表同时要使用这两个字段进行排序数据的工作

3-7  TSQLDataSetSortFieldNames特性设定多个排序字段,每一个字段名称以“,”符号分隔

现在再次执行应用程序,并且使用TSQLMonitor观察,那么我们可以看到下面的SQL语句,dbExpressorder by条件中使用了程序员在SortFieldNames特性中输入的字段名称来进行数据排序。

INTERBASE - isc_attach_database

INTERBASE - isc_dsql_allocate_statement

INTERBASE - isc_start_transaction

select * from biolife order by SPECIES_NAME, SPECIES_NO

INTERBASE - isc_dsql_prepare

INTERBASE - isc_dsql_describe_bind

当然,除了另外使用TSQLDataSetSortFieldNames特性值之外,我们也可以直接使用TSimpleDataSet内建的TInternalDataSetSortFieldNames特性值来达成同样的效果,读者展开TSimpleDataSetDataSet特性就可以看到TInternalDataSetSortFieldNames特性值。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论