首页 / 浏览问题 / 组件GIS / 问题详情
向数据集中追加记录集成功但是记录集的数据都未更新
70EXP 2023年06月15日

代码将两个记录集中的数据都更新了,我从UDB中导出两个shp都看了没有问题。

向矢量数据集中append记录集是成功的,但是添加进去的记录集数据却没有更新。因为还要将矢量数据集导出,所以还写了关于导出的一些代码

请问是我代码哪里写错了吗?

1个回答

您好,

1.您代码将记录集结果更新后,是否使用代码update保存记录集更新的内容到对应数据集;

2.对数据集使用append时,是否返回的是true,记录集与数据集的类型一直才能追加成功,比如都为点数据集或者都为线数据集或者都为面数据集。

希望可以帮助到您。
10,758EXP 2023年06月16日
谢谢您的回答。您提到的“是否使用代码update保存记录集更新的内容到对应数据集”我不太理解,我是参考recordset.batch批量更新的示例代码完成记录集的更新的。

更新后的记录集如何保存至对应数据集呢?

麻烦您展示一下相关代码可以吗?谢谢您
更新:   recordset.update

public void recordsetTest()
 {
        // 从中取出名为“World”(面数据集)的矢量数据集 dataset_world,和名为“Example”(面数据集)的矢量数据集 dataset
        DatasetVector dataset_world = (DatasetVector) datasource.getDatasets().get("World");
        DatasetVector dataset = (DatasetVector) datasource.getDatasets().get("Example");

        // 得到“Example”对应的所有记录集以及“World”中 SmID=1 的记录
        Recordset recordset = dataset.getRecordset(false, CursorType.DYNAMIC);
        Recordset recordset_world = dataset_world.query("SmID=1",CursorType.STATIC);

        // 将记录位置移到第一位
        recordset.moveFirst();

        // 锁定当前记录位置
        recordset.edit();

        // 将当前记录删除
        recordset.delete();

        // 将“World”中 SmID=1 的记录添加到 recordset 中并提交
        Geometry geometry = recordset_world.getGeometry();
        recordset.update();
        recordset.addNew(geometry);
        recordset.update();

        // 关闭记录集,释放几何对象、记录集
        recordset.close();
        geometry.dispose();
        recordset.dispose();
        recordset_world.dispose();
    }
...