我遇到了一个问题,Salesforce只会从查询中向我的flex应用程序返回1000条记录。我想获得更多(如5000-10000)。这可能吗?
这是我尝试过的(app是F3WebApplication)
注意:此代码确实有效,我只需要它返回更多结果:
app.wrapper.query(query,
new mx.rpc.Responder(
function(rows:ArrayCollection):void {
if(user_list != null){
filteredList = addOwnerData(rows);
filteredList = PutChildrenWithParents(filteredList);
} else {
filteredList = PutChildrenWithParents(rows);
}
my_accounts_raw = new ArrayCollection(filteredList.toArray());
refreshSearchData(filteredList);
},
function():void{_status = "apex error!";}
)
);
}
我还尝试过app.connection.Query然后使用queryMore,但根本无法使用它。
有什么想法吗?
答案 0 :(得分:1)
query / queryMore是要走的路,你需要第一个查询结果中的queryLocator值才能调用queryMore。
答案 1 :(得分:1)
connection可以访问query和queryMore,并且回调获取queryResult而不是arrayCollection。逻辑就像:
app.connection.query("SELECT Id, Name from ETC__c", new SfdcAsyncResponder(getResult,showError));
public function getResult(results:QueryResult):void {
if(!results.done) {app.connection.queryMore(results.queryLocator,new SfdcAsyncResponder(getResult,showError));}
/ ... /
}
请注意,如果您没有使用包装器功能,则可能需要手动协调脱机数据(如果这是AIR)。
HTH