用户没有执行该操作的权限

3310
3.
跳到解决方案
2019年11月15日12:32
ΔΕΥΑΚέρκυρας
新贡献者II

你好,

我使用File Geodatabase API v.1.5.1与. net,当我尝试插入一个新行到现有的功能类,我得到以下错误“用户没有执行该操作的权限”。

1.Geodatabase. open (@"C:\temp\MyTest.gdb");
2.Table Table = geodatabase.OpenTable("\\MyFeatureClass");

3.Row newRow = table.CreateRowObject();

4.PointShapeBuffer sb = new PointShapeBuffer();
5.某人每次(ShapeType.Point);
6.Point Point = new Point(x,y);
7.某人.point =点;

8.启动。SetGeometry (某人);

9.table.Insert(启动);

10.geodatabase.Close ();

我注意到的是物业表格IsEditable在我的测试中是假的。在API附带的“编辑”示例中,当他们打开“城市”功能类时,它可以正常工作。房地产表格IsEditable设置为true。这和我看到的问题有关吗?

顺便说一下,我正在使用的地理数据库是在ArcGis Pro 2.4.2中创建的。

有办法解决这个问题吗?

先表示感谢,

格雷格

0荣誉
1解决方案

接受的解决方案
ΔΕΥΑΚέρκυρας
新贡献者II

显然,有一些限制禁止用户修改数据。以下是该手册的摘录。

文件Geodatabase API的限制

虽然File Geodatabase API支持读取复杂Geodatabase类型的模式和数据,但该API不支持对以下数据集类型的插入、删除或更新的Geodatabase行为:

  • 注释和维特性类
  • 类的关系
  • 网络(GN和ND)
  • 拓扑
  • 地形
  • 表示
  • 包裹织物

在大多数情况下,API将阻止用户尝试编辑具有复杂行为的对象,但是开发人员有责任理解他们应该和不应该通过API编辑什么,并避免编辑具有地理数据库行为的数据集。有一个名为Table::IsEditable的方法,它将为开发人员提供确定数据集是否可以安全编辑的能力。

File Geodatabase API的其他限制:

  • 不支持栅格(栅格数据集,栅格目录,马赛克数据集和栅格属性)。
  • 使用File Geodatabase API的空间查询将被限制为包络交叉操作符。
  • Secure (licensed)数据不支持。

在原帖子中查看解决方案

0荣誉
3回复
ΔΕΥΑΚέρκυρας
新贡献者II

我发现了这个Geodatabase Error(-2147220987):用户没有执行该操作的权限。这没有任何帮助,因为我没有使用任何作家。事实上,我不知道它们是什么。我只是使用文件geodatabase API从文件打开一个db,并将一行插入到一个特征类。

0荣誉
ΔΕΥΑΚέρκυρας
新贡献者II

我附上了一个演示问题的示例项目。该项目是使用API中的x64 dll构建的。

0荣誉
ΔΕΥΑΚέρκυρας
新贡献者II

显然,有一些限制禁止用户修改数据。以下是该手册的摘录。

文件Geodatabase API的限制

虽然File Geodatabase API支持读取复杂Geodatabase类型的模式和数据,但该API不支持对以下数据集类型的插入、删除或更新的Geodatabase行为:

  • 注释和维特性类
  • 类的关系
  • 网络(GN和ND)
  • 拓扑
  • 地形
  • 表示
  • 包裹织物

在大多数情况下,API将阻止用户尝试编辑具有复杂行为的对象,但是开发人员有责任理解他们应该和不应该通过API编辑什么,并避免编辑具有地理数据库行为的数据集。有一个名为Table::IsEditable的方法,它将为开发人员提供确定数据集是否可以安全编辑的能力。

File Geodatabase API的其他限制:

  • 不支持栅格(栅格数据集,栅格目录,马赛克数据集和栅格属性)。
  • 使用File Geodatabase API的空间查询将被限制为包络交叉操作符。
  • Secure (licensed)数据不支持。
0荣誉