3.1.1 dbExpress/DataSnap内定排序
首先读者必须知道的是,当使用TSimpleDataSet控件选取数据时,TSimpleDataSet便会自动地帮助程序员建立两个内定的排序方式,第一个是根据选择的数据表的Primary Key建立的内定排序方式,第二个则是TSimpleDataSet/TClientDataSet使用来排序其被变更数据(Delta特性值)的索引。在dbExpress中分别以DEFAULT_ORDER和CHANGEINDEX来代表。例如现在如果我们点击数据模块中scdsDemo的IndexDefs特性值,那么就可以看到如图3-3所示的画面,在IndexDefs特性值中包含了DEFAULT_ORDER和CHANGEINDEX。而如果我们继续点击DEFAULT_ORDER,那么会在对象查看器中看到这个排序方式是以SPECIES_NO字段为排序字段。

图3-3 TSimpleDataSet/TClientDataSet控件拥有内定的排序方式
为什么DEFAULT_ORDER是以SPECIES_NO字段为排序字段呢?现在如果我们打开BIOLIFE数据表,那么从图3-4所示的画面中可以看到因为SPECIES_NO字段是BIOLIFE数据表的Primary Key字段,因此,dbExpress会以这个字段作为内定的排序字段。

图3-4 范例数据表的纲要,SPECIES_NO是键值字段
因此,如果读者只需要使用Primary Key字段作为排序字段,那么就需要在TSimpleDataSet/TClientDataSet的IndexDefs特性值中选择DEFAULT_ORDER为排序方式即可。
但是对于没有Primary Key的数据表,或是想要动态地使用其他字段来排序,那该怎么办呢?






