容易混淆表达式语法
Foxtable中有很多地方要使用条件表达式,表达式的使用有两种情形。
针对已经加载的数据
DataTable的Select、Find、Compute、RepalceFor、DeleteFor、RemoveFor、GetValues、GetComboListString方法。
Table的Filter属性和FindRow方法
DataCol的Expression属性。
GroupTableBuilder和CrossTableBuilder的Filter属性
。
这些方法或属性针对的是已经加载的数据,适用于使用指南中《表达式》这一章介绍的语法,请参考:运算符和函数 和 条件表达式。
针对后台所有数据
DataTable的Load方法是从后台重新加载数据,所以LoadFilter属性的语法和前面的不同,它适用于SQL语法,和Select语句的Where条件表达式语法相同,但是具体语法和函数随不同的数据源而所有差异。
同样AppendLoad用于从后台追载新的数据,所以其Filter参数适用于SQL语法。
DataTable的一系列处理后台数据的方法:SQLCompute、SQLFind、SQLSelect、SQLReplaceFor、SQLDeleteFor、SQLGetValues、SQLGetComboListString,其条件参数显然都适用于SQL语法。
DataTable的Fill和SQLLoad方法,以及Table的Fill方法,都是直接使用Select语句从后台加载数据,当然都适用SQL语法。
此外SQLGroupTableBuilder、SQLCrossTableBuilder和SQLJoinTableBuilder由于统计(或查询)的是后台数据,所以其Filter属性同样适用于SQL语法。
如果将GroupTableBuilder和CrossTableBuilder的FromServer属性设置为True,此时二者统计的是后台数据,所以其Filter属性
将适用于SQL语法。
需要注意的是,采用SQL语法的时候,表达式中的表名和列名必须和后台数据库一致。
在开发指南的《SQL相关》这一章,有SQL语法的介详细绍,请参考:Select语法
Access函数 SQL Server函数