您好,
1.请确认数据集添加的几何对象与数据集类型相同,比如三维点一般添加到三维点数据集,
2.请确认数据源是独占方式打开,而不是只读方式打开
3.recordset的实例化应该用datasetvector.query方法获取
4.添加对象到数据集代码示例:
以下代码示范如何删除一条记录以及添加记录。假设打开一个工作空间 workspace
对象,工作空间中存在一个数据源 datasource
对象
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();
}