2009年5月25日星期一

[web2py]DAL中隐藏的秘密:limit和orderby desc

web2py 有所有新兴开源项目的通病:文档落后于代码。
例如,你在document下的DAL相关文档里,只能读到orderby的用法,但是没有告诉你如何desc。在该文档中也找不到limit的介绍。
其实这两个功能都很重要,分页几乎是现代数据库应用中必备的功能,limit关键字就是为此而诞生的。而对于不能任意split(我查了web2py的源码才发现小于0的索引SQLROWS直接抛异常),又不能直接reverse的DAL数据集,倒排查询就是很重要的功能了。
其实这两个功能DAL都有。
oderby的支持看来开发人员还没有找到很好的形式,例如,我们可以 orderby=db.ta.id,但是没有一个descorderby=db.ta.id,不过其实我们可以 orderby="ta.id desc",这样看起来有点怪,但是可用,而且不算很难理解。
limit关键字参数的支持就自然很多,类似标准SQL,DAL的limit支持两种形式:
limit=n,取数据集前n项。
limit=(n,m)从m项起取前n项,等效于PG的limit n offset m
--
杀人放火金腰带,补路修桥无尸骸。

……

劉鑫
March.Liu

没有评论: