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

    错误代码

  • 相关阅读:
    Object-C,NSSet,不可变集合
    NYIST 860 又见01背包
    NYIST 1070 诡异的电梯【Ⅰ】
    HDU 1542 Atlantis
    HDU 4756 Install Air Conditioning
    CodeForces 362E Petya and Pipes
    HDU 4751 Divide Groups
    HDU 3081 Marriage Match II
    UVA 11404 Palindromic Subsequence
    UVALIVE 4256 Salesmen
  • 原文地址:https://www.cnblogs.com/MakeView660/p/6527255.html
Copyright © 2011-2022 走看看