首页 / 浏览问题 / 组件GIS / 问题详情
SuperMap iObjects .NET中通过Recordset.AddNew 方法添加记录总是返回false
5EXP 2024年09月02日

使用产品:SuperMap iObjects .NET(版本不清楚) 操作系统:win10 x64
问题详细描述:调用Recordset.AddNew()方法,总是返回false,新增失败,查找相关帖子,可能的原因有:1、数据源只读;  2、获取记录集时用了静态游标;  3、属性字段中有必填字段,却只用了AddNew(Geometry geometry) 方法,没有传属性值;  4、经纬度的数据,不在范围内;  5、判断一下数据集类型,再加对象,不能将GeoPoint加到线数据集中
已确认的是数据源并不是只读的,获取记录集时用了动态游标,属性字段是有必填字段的,在调用
AddNew()方法时添加了属性,经纬度的范围应该是正常范围的,数据集的类型是point3D,添加的也是三维点,不知道问题出在哪?

1个回答

您好,通过对您提供的代码截图分析,我们可以看出,您所需新增记录的数据集是经由 SQL 查询而得到的记录集(Recordset)。在此情形下,建议您对获取记录集的方式作出调整,不用 Query 查询接口,转而采用数据集所提供的获取记录集的接口(DatasetVector.GetRecordset),同时以动态游标的方式进行获取。

希望可以帮到您。

2,258EXP 2024年09月03日

按照您的建议改成DatasetVector.GetRecordset获取记录集,然后添加记录返回的仍然是false

【问题原因】

客户使用的是二维点数据集,而要新增的是三维点数据,所以一直添加是失败的。

【解决办法】

将二维点数据集修改成三维点数据集,在三维点数据集中新增三维点数据,即可正常添加。
...