vc ado oracle 0x800A0E7A

来源:互联网 发布:mac无线键盘失灵 编辑:程序博客网 时间:2024/05/21 10:23

一电脑上装了oracle10g服务端,11g客户端(蛋疼的人。。),卸了11g客户端之后,原先写好的vc 连数据库程序不能执行,在用字符串连接的时候抛出0x800A0E7A的错误,网上说是ADO 未找到提供程序。该程序可能未正确安装

然后百度,摆了两个多小时。。。

原因1:

http://www.xinfengit.com/201111/24118782.html说注册OraOLEDB*.dll

赶紧回去到oracle安装目录下的BIN目录双击注册,

(也可以用cmd,注册方法: regsvr32 OraOLEDB10.dll)

再打开程序,搞定

原因2:

20140116再次遇到0x800A0E7A错误,注册OraOLEDB10.dll也无用,由于电脑是64位+oracle 10g 64位,故查到32应用程序无法使用64位OraOLEDB10.dll,于是安装1个10g 32位客户端,然后搞定


 

最后感谢上面写文章的人

ps:哎2012-06-02,又一个蛋疼的人装了oracle10g服务端,11g客户端,卸了11g客户端,结果vc+ado不能连了。。我自己也装了客户端,卸载,同样报0x800A0E7A,然后google,居然搜到自己写的了。狂汗啊,依然如此解决,记忆力太差了,这次感谢我自己

 

Ps:

ADO错误代码说明

 

在使用ADO的时候,我们在程序中经常使用
try 
{
    //
}
catch(_com_error e) 
{
     MessageBox(e.ErrorMessage());
     ........
}

来捕获ADO的异常信息,但是
e.ErrorMessage()输出的往往是一些错误编号
例如: IDispatch error #3748
是我们还是不能了解到底是哪方面的操作导致了异常

下面就给出一些ADO中的错误代码和对应的描述信息,希望对大家有所帮助!

3707 应用程序不能改变Recordset对象的ActiveComnection属性,以Command对象作为它的源
3732 不能完成动作
3748 不能改变连接
3220 不能改变提供者
3724 不能转换值不能创建资源
3747 类别没有设置所以动作不能执行
3726 这一行中不存在指定的列
3421 对于当前的应用程序,应用程序使用了错误类型的值
3721 数据超出给定的数据类型的范围
3738 不能删除资源,这超出了允许范围
3750 不能设置Deny权限,因为提供者不支持
3751 提供者不支持请求的Deny类型
3251 提供者不支持该应用程序请求的操作
3749 Fields集合的Dpdate方法失败
3219 在此环境中不允许应用程序请求的操作
3719 因为违背数据的完整性,操作失败
3246 在事务中,应用程序不能显式地关闭Connection对象
3001 应用程序使用的参数类型错误,可能超出范围或与其他类型冲突
3709 应用程序请求对一个对象的操作时使用了一个引用,而该引用指向了一个关闭的或无效的Connection对象
3708 应用程序不适当地定义了一个Parameter对象
3714 事务无效
3729 提供的URL无效
3265 ADO在集合中没发现对象
3021 BOF和EOF中一个为True,或者当前记录已被删,而应用程序的请求操作需要当前记录
3715 操作不在执行过程中
3710 操作不能重新执行
3704 如果对象已关闭,不允许应用程序请求的操作
3367 对象已在集合中,不能追加
3420 由应用程序引用的对象不再指向有效的对象
3705 如果对象已打开,不允许应用程序请求的操作
3002 当打开请求的文件时,发生错误
3712 操作被取消
3734 因为服务器得不到足够的空间完成操作,操作失败
3720 因为用户没有足够的权限完成操作,操作失败
3742 设置这个属性造成和其他属性冲突
3739 对于选择的列,这个属性无效
3740 给属性提供了一个无效的选择
3741 给属性提供了一个无效的值
3743 不是所有的属性都能被设置
3744 属性没有被设置
3745 属性不能被设置
3746 属性不被支持
3000 提供者执行请求的动作失败
3706 ADO不能找到指定的提供者
3003 读指定的文件时出错
3731 资源已经存在
3730 资源被锁定
3735 资源超出范围
3722 动作违背了模式
3723 表达式包含不匹配的符号
3713 操作仍然在连接中
3711 操作仍然在执行
3728 没有查看目录树的权限
3736 命令不可用
3716 在这种情况下运行不安全
3727 URL不存在
3737 在命名的行中的URL不存在
3733 文件版本信息没找到
3004 写文件时有错误
3717 操作引出一个安全对话
3718 操作引出一个安全对话头


常量名称 
十进制编号
十六进制编号 
说明 

adErrInvalidArgument 
3001
0x800A0BB9
应用程序使用的参数其类型错误、超出可接受的范围或者与其他参数冲突。 

adErrNoCurrentRecord 
3021
0x800A0BCD
BOF 或 EOF 为 True,或者当前记录已经删除。应用程序请求的操作需要当前记录。 

adErrIllegalOperation 
3219
0x800A0C93
应用程序请求的操作不允许出现在该上下文中 

adErrInTransaction 
3246
0x800A0CAE
在事务中应用程序无法显式关闭 Connection 对象。 

adErrFeatureNotAvailable 
3251
0x800A0CB3
提供者不支持应用程序请求的操作。 

adErrItemNotFound 
3265
0x800A0CC1
ADO 无法在对应于应用程序请求的名称或顺序引用的集合中找到对象。 

adErrObjectInCollection 
3367
0x800A0D27
无法追加,对象已经在集合中。 

adErrObjectNotSet 
3420   
0x800A0D5C 
应用程序引用的对象不再指向有效的对象。 

adErrDataConversion 
3421
0x800A0D5D
应用程序使用了不符合对当前操作的值类型。 

adErrObjectClosed 
3704
0x800A0E78
如果对象关闭,则不允许应用程序请求的操作。 

adErrObjectOpen 3705
0x800A0E79
如果对象打开,则不允许应用程序请求的操作。 

adErrProviderNotFound 
3706
0x800A0E7A
ADO 找不到指定的提供者。 

adErrBoundToCommand 
3707
0x800A0E7B
应用程序无法用 Command 对象将 Recordset 对象的 ActiveConnection 属性更改为它的来源数据。 

adErrInvalidParamInfo 
3708
0x800A0E7C
应用程序错误地定义了 Parameter 对象。 

adErrInvalidConnection 3709
0x800A0E7D
应用程序通过引用关闭或无效的 Connection 对象来请求对对象的操作。

0x80004005 

连接字符串错误,或者工程目录包含()

转自:http://wenku.baidu.com/view/2b70602e0066f5335a8121ac.html

0 0
原创粉丝点击