容易混淆表达式语法

Foxtable中有很多地方要使用条件表达式,表达式的使用有两种情形。

针对已经加载的数据

DataTable的SelectFindComputeRepalceForDeleteForRemoveForGetValuesGetComboListString方法。
Table的Filter属性和FindRow方法
DataCol的Expression属性。
GroupTableBuilderCrossTableBuilder的Filter属性 。

这些方法或属性针对的是已经加载的数据,适用于使用指南中《表达式》这一章介绍的语法,请参考:运算符和函数条件表达式

针对后台所有数据

DataTable的Load方法是从后台重新加载数据,所以LoadFilter属性的语法和前面的不同,它适用于SQL语法,和Select语句的Where条件表达式语法相同,但是具体语法和函数随不同的数据源而所有差异。
同样AppendLoad用于从后台追载新的数据,所以其Filter参数适用于SQL语法。
DataTable的一系列处理后台数据的方法:SQLComputeSQLFindSQLSelectSQLReplaceForSQLDeleteForSQLGetValuesSQLGetComboListString,其条件参数显然都适用于SQL语法。
DataTable的FillSQLLoad方法,以及Table的Fill方法,都是直接使用Select语句从后台加载数据,当然都适用SQL语法。
此外SQLGroupTableBuilderSQLCrossTableBuilderSQLJoinTableBuilder由于统计(或查询)的是后台数据,所以其Filter属性同样适用于SQL语法。
如果将GroupTableBuilderCrossTableBuilder的FromServer属性设置为True,此时二者统计的是后台数据,所以其Filter属性 将适用于SQL语法。
需要注意的是,采用SQL语法的时候,表达式中的表名和列名必须和后台数据库一致。

在开发指南的《SQL相关》这一章,有SQL语法的介详细绍,请参考:Select语法   Access函数   SQL Server函数


本页地址:http://www.foxtable.com/webhelp/topics/2401.htm