请问iServer获取数据集内全部记录的方法

0 投票

使用产品:iserver 10i 操作系统:win10 x64

代码如下所示,

我想要获取一个发布好的工作空间内指定数据集内的全部记录,

方式为"ID",根据文档,使用该方式的话,必须要指定ids的数组,按照数组内的id值返回结果。

工作空间是数据库类型,所以数据集内的数据量是不断变化的,

请问有什么办法不指定ids的情况下直接输出数据集内所有记录。

var url_str = iserverhost +"/iserver/services/data-Geo_ws/rest/data/featureResults.json?returnContent=true";

data_obj["getFeatureMode"] = "ID";

data_obj["datasetNames"] = ["dataset01","dataset02","dataset03"];

data_obj["ids"] = Array.from(Array(1000).keys());

var formObject = JSON.stringify(data_obj);

    $.ajax({
    type : "POST",
    url: url_str,
    dataType: "json",
    data:formObject,
    contentType: 'application/json', 
    success: function(data){
        convertToCSV(data.features);
    },
    error : function(httpReq,status,exception){
        alert("error");
    }
    })

上图代码中,我可以指定获取id为前1000的所有记录,

但是如果指定到较大范围,比如9999999时,js会报错内存溢出,

所以我希望有办法在不指定ids的情况下,也能获取到全部的记录。

请予以指导,谢谢。

10月 5 分类:  40次浏览 | 用户: sirst07 才疏学浅 (19 分)

1个回答

1 投票
 
已采纳
因为iServer查询时服务端默认返回查询结果条目的最大数量为1000,所以您可以通过修改iServer安装目录\webapps\iserver\WEB-INF\iserver-services.xml文件中的maxFeatures的参数来修改查询出的结果条数。
10月 9 用户: 张定祥 锋芒毕露 (483 分)
采纳于 10月 14 用户:sirst07
...