Salesforce API查询的SOQL分页

Dan*_*ger 5 pagination salesforce soql

是否有一种有效的方法来浏览SOQL查询的结果,而不会将所有查询结果返回,然后丢弃其中的大部分?

作为一个例子,我希望能够翻阅一次显示10条记录的完整联系人列表.我没有必要按任何特定领域排序.

Dan*_*ger 8

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

这需要在Salesforce QueryResult之上提供一定级别的分页支持.

即当请求页面时,可能需要sObjects:

  • 当前(缓存)的QueryResult
  • 可以使用查询定位器获取的后续QueryResult
  • 先前的QueryResult
  • 三者的一些组合.

如果页面跨越两个(或更多)QueryResults,则需要使用所有必需记录创建人工QueryResult.

2012年春季发布更新

看起来有新的功能将为SOQL添加OFFSET支持.例如

SELECT Name FROM Merchandise__c WHERE Price__c > 5.0 ORDER BY Name LIMIT 50 OFFSET 100
Run Code Online (Sandbox Code Playgroud)

参见Spring '12 Force.com平台版本 - OFFSET添加到SOQL(Pilot)

2012年夏季发布更新

OFFSET现在是GA(一般可用性?)