是否有一种有效的方法可以对 SOQL 查询的结果进行分页,而无需返回所有查询结果,然后丢弃其中的大部分结果?

例如,我希望能够翻阅一次显示 10 条记录的完整联系人列表。我不需要按任何特定字段进行排序。

有帮助吗?

解决方案

目前,我发现可通过合作伙伴 API 处理任何 SOQL 查询的最有效解决方案是保留从初始 QueryResult 和查询定位器返回的 sObject,以防在当前结果之外请求页面。

这需要在 Salesforce QueryResult 之上提供一定程度的分页支持。

IE。当请求页面时,可能需要以下 sObject:

  • 当前(缓存的)QueryResult
  • 可以使用查询定位器获取后续的 QueryResult
  • 先前的查询结果
  • 三者的某种组合。

如果页面跨越两个(或更多)查询结果,则需要使用所有必需的记录创建人工查询结果。

2012 年春季版本更新

看起来即将推出的新功能将为 SOQL 添加 OFFSET 支持。例如。

SELECT Name FROM Merchandise__c WHERE Price__c > 5.0 ORDER BY Name LIMIT 50 OFFSET 100

Spring '12 Force.com 平台发布 - OFFSET 添加到 SOQL(试点)

2012 年夏季版本更新

OFFSET 现已正式发布 (全面可用?)

其他提示

您可以使用申请在服务器端做分页一个自动编号。这个字段可以后“以便通过”子句中使用,它可以作为一个索引字段。

我做分页像你身边。但我有一个问题,在服务器端在同一时间,我不能做排序。因为排序和分页都需要“按订单”条款之后添加列。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top