zoukankan      html  css  js  c++  java
  • ADO 调用Execute失败,异常码DB_E_DATAOVERFLOW

      今天,通过ADO接口往PG数据库中插入数据,结果数据始终不能插入到数据库的表中,执行insert语句后,返回失败,错误码DB_E_DATAOVERFLOW。

      DB_E_DATAOVERFLOW:命令中的数值超出列中规定的范围!

      原因很清楚了,插入数据表中的字段的变量值范围超过了表定义时的范围,产生了溢出。

      一个好的编程习惯:定义字符串类型时最好分配足够大的缓冲空间

      而且,涉及到中英文切换的情况,中文字符串长度较短,但是翻译成英文后长度就可能会明显增大,需要选择两者中最大的长度!

      附录:OLE DB函数可能返回的HRESULT错误代码

    错误码                            描述
    DB_E_ABORTLIMITREACHED 执行中断,可能是因为资源不足 DB_E_ALREADYINITIALIZED 企图重新初始化已经初始化的数据源 DB_E_BADACCESSORFLAGS 非法的Accessor标记 DB_E_BADACCESSORHANDLE 非法的Accessor句柄 DB_E_BADACCESSORTYPE 指定的Accessor没有带参数 DB_E_BADBINDINFO 非法的绑定信息 DB_E_BADBOOKMARK 非法的书签 DB_E_BADCHAPTER 非法的章 DB_E_BADCOLUMNID 非法的列号 DB_E_BADCOMPAREOP 比较操作无效 DB_E_BADCONVERTFLAG 非法的转换标记 DB_E_BADCOPY 拷贝出错 DB_E_BADDYNAMICERRORID 传递的DynamicErrorID非法 DB_E_BADHRESULT 传递的HRESULT非法 DB_E_BADID 无法接受DB_E_BADID,请使用DB_E_ABLEID DB_E_BADLOCKMODE 非法的锁定模式 DB_E_BADLOOKUPID 非法的LookupID DB_E_BADORDINAL 指定的列参数不存在 DB_E_BADPARAMETERNAME 不能识别给定的参数名称 DB_E_BADPRECISION 指定的精度非法 DB_E_BADPROPERTYVALUE 属性值非法 DB_E_BADRATIO 非法的比例 DB_E_BADRECORDNUM 指定的记录号非法 DB_E_BADREGIONHANDLE 非法的区域句柄 DB_E_BADROWHANDLE 非法的行句柄。在行记录集的开始和结尾或更新结果集时经常发生该错误。 DB_E_BADSCALE 指定的scale非法 DB_E_BADSOURCEHANDLE 非法的源句柄 DB_E_BADSTARTPOSITION 指定的行位移出界 DB_E_BADSTATUSVALUE 指定的状态标记既非DBCOLUMNSTATUS_OK又非DBCOLUMNSTATUS_ISNULL DB_E_BADSTORAGEFLAG 不支持某个指定的存储标记 DB_E_BADSTORAGEFLAGS 不支持存储标记 DB_E_BADTABLEID 非法的表标识 DB_E_BADTYPE 指定的类型非法 DB_E_BADTYPENAME 给定的类型不能识别 DB_E_BADVALUES 非法的值 DB_E_BOOKMARKSKIPPED 尽管正常形成书签,但没有匹配行 DB_E_BYREFACCESSORNOTSUPPORTED      该供应程序不支持Accessor DB_E_CANCELED 修改已撤销,列数没有变化 DB_E_CANNOTFREE 供应程序已经是树的所有者,该树不能释放 DB_E_CANNOTRESTART 行集不能重新启动 DB_E_CANTCANCEL 正在执行的命令不能取消 DB_E_CANTCONVERTVALUE 因为非数字溢出原因,命令中的数值不能转换为正确的类型 DB_E_CANTFETCHBACKWARDS 行集不支持向后滚动 DB_E_CANTFILTER 请求的过滤器不能打开 DB_E_CANTORDER 请求的排序器不能打开 DB_E_CANTSCROLLBACKWARDS 行集不能向后滚动 DB_E_CANTTRANSLATE 不能把当前的数描述为文本 DB_E_CHAPTERNOTRELEASED 行集是单章节的,访问新章节时,旧章节没有释放 DB_E_CONCURRENCYVIOLATION 行集使用优化的并行操作,自上次阅读后,列值已经改变 DB_E_COSTLIMIT 在给定的cost限制内不能发现查询计划 DB_E_DATAOVERFLOW 命令中的数值超出列中规定的范围 DB_E_DELETEDROW 所引用的行已经删除 DB_E_DIALECTNOTSUPPORTED 供应程序不支持指定的dialect DB_E_DUPLICATECOLUMNID 发生重复的列标号 DB_E_DUPLICATEDATASOURCE 发生重复的数据源 DB_E_DUPLICATEINDEXID 指定的索引已经存在

      ADO 错误参考:https://msdn.microsoft.com/zh-cn/LIBRARY/jj248997.aspx

    OLE DB

    函数可能返回的

    HRESULT

    错误代码

  • 相关阅读:
    C语言单链表创建,插入,删除
    Java乔晓松spring构造函数的注入以及null的注入
    sentilib_语料库项目_search模块的实现
    spring入门(6)set方法注入依赖之null的注入
    Java乔晓松使用Filter过滤器清除网页缓存
    漂亮的弹框
    C#判断各种字符串(如手机号)
    视频数字水印
    数据校验
    SVN 常见问题操作总结
  • 原文地址:https://www.cnblogs.com/MakeView660/p/6527255.html
Copyright © 2011-2022 走看看