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

错误代码

时间: 2024-12-04 20:17:00

ADO 调用Execute失败,异常码DB_E_DATAOVERFLOW的相关文章

调用 SSPI 失败,请参见内部异常。接收到的消息异常,或格式不正确。

完整异常信息: System.Security.Authentication.AuthenticationException: 调用 SSPI 失败,请参见内部异常. ---> System.ComponentModel.Win32Exception: 接收到的消息异常,或格式不正确.   --- 内部异常堆栈跟踪的结尾 ---   在 System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, Asy

atitit.架构设计---方法调用结果使用异常还是返回值

atitit.架构设计---方法调用结果使用异常还是返回值 1. 应该返回BOOL类型还是异常 1 2. 最终会有四种状况,抛出异常.返回特殊值.阻塞.超时 1 3. 异常的优缺点点 1 4. java BlockingQueue的提示 2 5. 方案::两个都使用,一个api返回bool,一个throw 异常... 2 1. 应该返回BOOL类型还是异常 现在我遇到一个问题,我有一个函数,它要实现的功能是启动一个线程,然后让此线程监视一个事件. 但我应该返回BOOL类型还是异常哪? 作者:: 

JS调用产生二维码

之前一直采用的是java后台调用qrcode.jar的形式产生二维码,然后web前台展示的形式显示二维码,后来感觉如果能调用JS框架产生二维码的话不久更好.至少能减少与浏览器的交互次数,减轻后台的压力. 搜了一些资料后感觉没有一个拿来就能用的,至少IE浏览器的兼容还是有问题,通过自己的调试写了一个demo.希望能够帮助到大家,为大家节省时间 具体的demo可以通过http://download.csdn.net/detail/fugui6611634/7337467来下载 将一个字符串(可以是中

IIS7.5 HTTP 错误 500 调用loadlibraryex失败的解决方法

关闭 IIS7.5 HTTP 错误 500 调用loadlibraryex失败的解决方法 在IIS7.5打开网页的时候,提示: HTTP 错误 500.0 - Internal Server Error 调用 LoadLibraryEx 失败,在 ISAPI 筛选器 C:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.dll,经过排除发现原来是两个斜杠导致 在IIS7.5打开网页的时候,提示: HTTP 错误 500.0 -

调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "D:\Tomcat7\iis\isapi_redirect.dll" 上

在配置IIS7.5和Tomcat整合时,总是报如下错误: 错误摘要 HTTP 错误 500.0 - Internal Server Error 调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "D:\Tomcat7\iis\isapi_redirect.dll" 上 我的系统环境: windows2008 R2标准版 + tomcat7 + isapi_redirect.dll(连接插件) 解决方法: 开始 -> 运行 -> inetmgr -> 应用

调用Axis WebService异常:org.xml.sax.SAXException: Bad envelope tag: definitions

用Eclipse直接创建的webservice客户端,调用webservice: String endpoint = "XXXService?wsdl"; XXXServiceProxy proxy = new XXXServiceProxy(endpoint); try{ String result = proxy.request(); System.out.println(result); }catch(RemoteException e){ e.printStackTrace()

tcp 在调用connect失败后要不要重新socket

tcp 在调用connect失败后要不要重新socket http://blog.csdn.net/occupy8/article/details/48253251

Java 集合快速失败异常

快速失败 在JDK中,查看集合有很多关于快速失败的描述: 注意,此实现不是同步的.如果多个线程同时访问一个哈希映射,而其中至少一个线程从结构上修改了该映射,则它必须 保持外部同步.(结构上的修改是指添加或删除一个或多个映射关系的任何操作:仅改变与实例已经包含的键关联的值不是结构上的修改.)这一般通过对自然封装该映射的对象进行同步操作来完成.如果不存在这样的对象,则应该使用 Collections.synchronizedMap 方法来“包装”该映射.最好在创建时完成这一操作,以防止对映射进行意外

[已解决]:调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "c:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.

原文:[已解决]:调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "c:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter. 现象:我的是 win7, iis7, 64bit, 打开网站错误如下: 错误摘要 HTTP 错误 500.0 - Internal Server Error 调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "c:\Windows\Microsoft.NET\Fram