前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ArcEngine 中的-2147467259错误

ArcEngine 中的-2147467259错误

作者头像
全栈程序员站长
发布2022-09-14 10:21:32
2.9K0
发布2022-09-14 10:21:32
举报
文章被收录于专栏:全栈程序员必看

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

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

ArcEngine 中的-2147467259错误
ArcEngine 中的-2147467259错误

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

ArcEngine 中的-2147467259错误
ArcEngine 中的-2147467259错误

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

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

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

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

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

附:

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档