试用许可环境下,是否能保存要素?

0 投票
使用产品:iMobile 9D 操作系统:win10 x64
数据类型: 文件型
问题详细描述:请问在试用许可环境下,是否能将绘制的要素保存,也调用了MapControl.submit()函数,为什么我再一次打开应用的时候,绘制的要素都不见了呢?是因为试用许可的原因吗?谢谢!
5月 24 分类:  30次浏览 | 用户: meadowair 才疏学浅 (15 分)

1个回答

0 投票
可以。检查一下是否提交成功,提交成功都是能保存了。另外检查是否有清除数据的操作。
5月 24 用户: 幸俊 牛刀小试 (298 分)
您好,感谢您的回复,我测试了一下submit()函数的返回值是true,还是无法保存要素,另外也无法编辑要素的属性值。

我没有执行任何清除数据的操作,地图上始终能看到我绘制的要素,但就是不能保存和编辑不了属性,还有其他需要注意的地方吗?谢谢!
提交后,能正确显示吗?若能数据肯定就是保存了的。

编辑对象,需要修改Action, 先选择(SELECT),选中后设置节点编辑(VERTEXEDIT).属性修改需要通过Recordset去修改数据记录的属性字段。

是的,我找到原因了

1.无法保存的问题,是因为重新部署app的时候将assets目录中空的udb文件覆盖了sdcard目录的udb文件。

2.无法编辑的问题,是因为记录集是只读属性,换了一种查询方式就可以写入了,没搞懂什么问题,不过现在能用了。

try {
    QueryParameter parameter = new QueryParameter();
    parameter.setAttributeFilter("SmID="+String.valueOf(event.getID()));
    parameter.setCursorType(CursorType.DYNAMIC);
    Recordset recordSet = dataset.query(parameter);
    recordSet.edit();
    boolean rs = recordSet.setFieldValue("project_id", mCurrentProjectId);
    recordSet.update();

    recordSet.close();
    recordSet.dispose();
} catch (Exception e) {
    e.printStackTrace();
}
看一下CursorType的文档,您就明白了。一个是可编辑,一个是不可编辑,比较完整一点,是需要检查一下update()的返回值,特别是开始使用。
...