javascript api使用sql进行query,sql字符超长

业务逻辑:从数据库中获得数组,按照要求使用sql进行拼装(字段 in(属性值1,属性值2,····))。然后将sql拼装结果带入query方法,与空间图层进行查询。
前提:sql拼装正确,query方法正确
问题:当sql字符串小于500时,一切正常。当超过1000时,后台报错
esri.config.defaults.io.proxyUrl 尚未进行设置。如果向启用了 CORS 的服务器发出请求,请将域推送到 esri.config.defaults.io.corsEnabledServers。
如果写for循环进行分组遍历,在渲染时会出现问题。因此在不考虑分组方案的情况下,有什么方法可以正常一次性query
已邀请:

刘锋

赞同来自:

把in(属性值1,属性值2,····)放到一个临时表中,改成 字段in select somefield from sometemptable

津_土豆

赞同来自:

这样写,也会造成数据循环(随机)遍历,再渲染。
已经解决for循环分组遍历渲染时的错误了,现在还是进行for分组遍历。
同时,根据之前的帖子发现,sql字符串和查询数量“or/in/and”都有限制,地址http://zhihu.esrichina.com.cn/question/9282

bill609054069 - 码农abc

赞同来自:

楼主有没有试过传整个sql语句,而不是几个条件??

津_土豆

赞同来自:

query.where = "sqlStr = "STCD = '30704900' OR STCD = '30700050' OR STCD = '30705600' OR STCD = '30702700' OR STCD = '30701851' OR STCD = '30706600' ";
或者
query.where = "STCD IN('30101201','30404500','30807401','30808501','30102501','31006850','30909200')";
这就是查询条件,原查询条件只是要素跟多,其余都不用设置

"

要回复问题请先登录注册