ArcEngine 中的-2147467259错误
大家好,又见面了,我是你们的朋友全栈君。
近日在ArcEngine中做InsertFeature(向*.mdb数据中添加要素)操作时出现了-2147467259错误。
由于代码在之前的测试中没有上述异常,遂怀疑是数据问题。经过排查,发现数据的属性表的中有一个字段的长度变短,而待添加的要素相关字段长度超标导致了上述问题,修改后错误消失。但另一处数据添加过程中再次报了-2147467259错误。这次再排查,发现是字段要求非空,而待添加的要素相关字段为空。人工补上字段值后,仍然报错。遂在ArcMap中删掉出错字段,再重新添加,此时ArcMap报了一个警告:
提示DATE为reserved word(保留字)。在将字段名改名,代码相应调整后,错误消失。
总结:这次出现-2147467259错误为数据问题,由于没有详细的错误原因,处理起来非常的棘手,需要将先前未报错的数据与报错的数据仔细对比,一步步发现问题。对于保留字作为字段名的问题,更应该注意,由于之前用DATE作为字段名的时候并未报错,所以一开始并没有想到是字段名的问题,对此,微软的帮助文档解释道:
”如果使用保留字或符号来命名桌面数据库或 Web 应用表中的字段,Access 会警告提示该字是保留字,且在引用该字段时可能会遇到错误。如果使用保留字来命名控件、对象或变量,也可能遇到错误。 你收到的错误消息不一定会告诉你保留字是导致问题的原因。 因此,可能很难确定需要更改哪些内容。 “
上述表述翻译一下,强行用保留字命名字段,可能报错也可能不报错。所以,在此建议不要用保留字来作为字段名。
此外,之前在ArcCatalog中还遇到过一个奇怪的现象,将一个图层从一个mdb文件复制到另一个mdb文件中的时候,图层中的DATE字段会自动变成DATE_且没有任何提醒,这导致后续使用时出现过找不到DATE字段引发的错误。看得出,用保留字作为字段名会导致诸多问题且难以发现。
附:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158411.html原文链接:https://javaforall.cn
相关文章
- -2147467259 mysql_我点了帮助,提示说是:连接数据库错误,错误号:-2147467259,怎么回事?望帮我解答。谢谢!…
- 2022-07-24:以下go语言代码输出什么?A:[]int{};B:[]int(nil);C:panic;D:编译错误。pa
- SQLServer 错误 1406 无法安全地强制执行服务。 请删除数据库镜像并恢复数据库 “%.*ls” 以获得访问权。 故障 处理 修复 支持远程
- JAVA错误: 找不到或无法加载主类详解编程语言
- MySQL错误处理与回滚(mysql错误回滚)
- 3704数据库操作错误!aspcms解决此问题方法大总结
- 解决ORACLE 06001错误的步骤(oracle 06001)
- PHP自定义错误处理函数的使用详解