Farseer

导航

利用表之间的关系创建Query

我们经常需要根据表之间的关系用代码创建query,SysQuery这个类提供了一个方法queryFromTableRelation,当然这个方法的代码跟我们平常根据表之间的关系构造query的过程是完全一样的,不过它做成了通用的方法,直接调用它就不用自己每次都重复劳动了,另外SysQuery里还有几个不错的方法,值得看一下source.
public static Query queryFromTableRelation(Common _parentTable, TableId _relationTableId, boolean _update = false, boolean _noRelationNoRecords = true)
功能:根据表的关系构造Query
参数说明:
_parentTable:父表
_relationTableId:子表Id
_update :是否允许query更新数据库记录
_noRelationNoRecords :如果没有关系就不返回记录,这一点是靠如下语句实现的:

if (_noRelationNoRecords && dictRelation.lines() == 0)
    
{
        query.dataSourceTable(_relationTableId).addRange(FieldNum(Common, TableId)).value(queryValue(
0));
    }
调用示例:
Query querySalesParmLine(boolean _forupdate = false)
{
    
return SysQuery::queryFromTableRelation(this, tableNum(SalesParmLine), _forupdate);
}

这个函数的代码还是挺漂亮的,可以看做DictionRaltaion类应用的示例代码,呵呵.

posted on 2006-09-21 18:47  佛西亚  阅读(473)  评论(0编辑  收藏  举报