如何在Flex Salesforce应用程序中查询超过5000条记录?

时间:2011-01-14 06:40:37

标签: flex actionscript-3 salesforce

我遇到了一个问题,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,但根本无法使用它。
有什么想法吗?

2 个答案:

答案 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