我正在尝试向ArcGIS地理数据库添加行,但我不希望为此行生成自动objectid。我想插入一个特定的objectid。我收到错误:字段不可编辑。
我的代码如下:
feature = fclass.CreateFeature();
feature.setValue((int)_fields[i].targetIndex, tripValue);
现在,在第一次迭代中,_fields [i] .targetIndex = 0,因为我想插入特定的objectid。 但是第一次迭代给了我一个错误,而其余的都很好。
关于如何以某种方式解决自动objectid的任何想法?
答案 0 :(得分:2)
简答:
你没有。
答案很长:
使用ObjectID字段作为唯一键(我假设你在这里做的事情)通常被认为是一个非常糟糕的想法,因为该字段不像您想象的那样静态 - 对数据集的各种操作将重新开始 - 分配他们。
this question的答案之一表明,如果您从其他地方复制数据,复制/粘贴数据可能会完整地传输目标,但是否则您应该创建另一个字段以用作唯一键并离开只有objectid。
(顺便说一下,这种地理数据库问题会在GIS.SE得到更明智的答案。
答案 1 :(得分:0)
ObjectID是ArcGIS的内部系统字段,我不能这样做。如help文档中所述,
ArcGIS使用ObjectID执行滚动,显示等操作 选择集,并对要素执行识别操作。
相反,我建议创建一个GlobalID,它也是由ArcGIS生成的系统,但要确保每个标识符都是唯一的(有关详细信息,请参阅ArcGIS field data type)。 GlobalID还支持地理数据库复制。要创建GlobalID,只需在ArcCatalog中右键单击要素类,然后选择管理>添加全局ID ...
我也是第二个Juffy,这个问题会更好地在GIS.SE提供。