ArcEngine 中的-2147467259错误

ArcEngine 中的-2147467259错误ArcEngine中因数据不合规导致的-2147467259错误

大家好,又见面了,我是你们的朋友全栈君。

近日在ArcEngine中做InsertFeature(向*.mdb数据中添加要素)操作时出现了-2147467259错误。

ArcEngine 中的-2147467259错误

由于代码在之前的测试中没有上述异常,遂怀疑是数据问题。经过排查,发现数据的属性表的中有一个字段的长度变短,而待添加的要素相关字段长度超标导致了上述问题,修改后错误消失。但另一处数据添加过程中再次报了-2147467259错误。这次再排查,发现是字段要求非空,而待添加的要素相关字段为空。人工补上字段值后,仍然报错。遂在ArcMap中删掉出错字段,再重新添加,此时ArcMap报了一个警告:

ArcEngine 中的-2147467259错误

提示DATE为reserved word(保留字)。在将字段名改名,代码相应调整后,错误消失。

总结:这次出现-2147467259错误为数据问题,由于没有详细的错误原因,处理起来非常的棘手,需要将先前未报错的数据与报错的数据仔细对比,一步步发现问题。对于保留字作为字段名的问题,更应该注意,由于之前用DATE作为字段名的时候并未报错,所以一开始并没有想到是字段名的问题,对此,微软的帮助文档解释道:

”如果使用保留字或符号来命名桌面数据库或 Web 应用表中的字段,Access 会警告提示该字是保留字,且在引用该字段时可能会遇到错误。如果使用保留字来命名控件、对象或变量,也可能遇到错误。 你收到的错误消息不一定会告诉你保留字是导致问题的原因。 因此,可能很难确定需要更改哪些内容。 “

上述表述翻译一下,强行用保留字命名字段,可能报错也可能不报错。所以,在此建议不要用保留字来作为字段名。

此外,之前在ArcCatalog中还遇到过一个奇怪的现象,将一个图层从一个mdb文件复制到另一个mdb文件中的时候,图层中的DATE字段会自动变成DATE_且没有任何提醒,这导致后续使用时出现过找不到DATE字段引发的错误。看得出,用保留字作为字段名会导致诸多问题且难以发现。

附:

微软官方给出的.mdb ( Access) 保留字

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158411.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tabnine激活码-激活码分享

    (tabnine激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~V…

    2022年3月22日
    83
  • makefile 常用函数notdir、wildcard、patsubst

    notdir,wildcard和patsubst是makefile中几个有用的函数,以前没留意过makefile中函数的用法,今天稍微看看~ 1、makefile里的函数makefile里的函数使用,和取变量的值类似,是以一个‘$’开始,然后是一个括号里面是函数名和需要的参数列表,多个变量用逗号隔开,像这样return=$(functionname arg1,

    2022年4月7日
    58
  • SSO 单点登录_sso登陆

    SSO 单点登录_sso登陆单点登录(SingleSignOn),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。实现SSO的主要工具是Cookie

    2022年10月24日
    0
  • goland2021.8激活码[免费获取]

    (goland2021.8激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlBI7JCUH1TG-eyJsa…

    2022年3月22日
    42
  • Java main方法

    Java main方法publicstaticvoidmain(String[]args){}或者 publicstaticvoidmain(Stringargs[]){}main方法是我们学习Java语言学习的第一个方法,也是每个java使用者最熟悉的方法,每个Java应用程序都必须有且仅有一个main方法。在eclipse里可以使用输入main,在按住Alt+/的方式快速创建main方法

    2022年6月1日
    34
  • mybatis log plugin 激活码【2021.7最新】

    (mybatis log plugin 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlMLZPB5EL5Q-eyJsa…

    2022年3月21日
    113

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号