ADO连接数据库出现错误码 0x80004003
有一天客户现场连接数据库时反馈报错误码0x80004003。 一看是无效的指针,然后定位到在创建实例时全部都失败了。
m_ptrCommand.CreateInstance(__uuidof(Command));
m_ptrRecordset.CreateInstance(__uuidof(Recordset));
m_ptrConnection.CreateInstance(__uuidof(Connection));
if(m_ptrCommand==NULL)
{ m_strErrorMsg = _T("数据库命令对象创建失败"); return false;
}
if(m_ptrRecordset==NULL)
{ m_strErrorMsg = _T("数据库记录集对象创建失败"); return false;
}
if(m_ptrConnection==NULL)
{ m_strErrorMsg = _T("数据库连接对象创建失败"); return false;
}
但是为什么如此,第一反应是ado未进行初始化,但是再看代码中也加入了 CoInitialize(NULL)初始化代码。 百思而不得姐,从而三问度娘。客户确实是xp机器是不是缺少KB983246补丁,缺少对ado连接的支持。但是都一一排除。再从头分析,绝大部分安装现场不出问题,而在这里ado创建实例失败。 我程序中用到的是
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF")
由此分析应该是这里出的问题,应该是win7和xp的msado15.dll不同。我把客户现场XP系统下包含msado15.dll的文件夹ado,替换掉我本地win7下的ado文件夹。然后重新编译程序,再在xp下应用,完美解决。
不过为什么会这样?
是因为ADO向下兼容的问题,使用xp的ADO低版本在高版本大多能运行,反之则不行。
WIN7 ADO的文件: msado15.dll,版本:6.1
XP ADO的文件: msado15.dll,版本:2.81
那问题随之而来,如何让ADO兼容所有的系统呢?
#import "msado15.dll" no_namespace rename ("EOF", "adoEOF")
把代码改成这样,然后把xp的msado15.dll复制到工程目录。 这样就能同时兼容xp和win7.
ADO连接数据库出现错误码 0x80004003相关推荐
- ADO错误码,ASP错误代码,jscript错误代码,vbscript错误代码对应
大部分的ADO的错误码对应的含义 除了在 Error 对象和 Errors 集合中说明的提供者错误之外,ADO 本身也将错误返回到运行时环境的异常处理机制之中.使用编程语言的错误捕获机制(如 Micr ...
- ADO连接数据库,编译到客户机运行时出现CreateInstance报错0x80004002、CreateParameter报0xC0000005错误的解决方法。
ADO连接数据库,编译到客户机运行时出现CreateInstance报错0x80004002,经查是由于ADO版本不一致引起的. 解决方法将原来stdafx.h中的 #import "c:\ ...
- Oracle:错误码ORA-28040 的坑
一.背景 因项目要求,第一次部署了Oracle 12 C的Server,Linux CentOS版,数据库装好之后部署一个Java Web项目(A项目)去连接数据库,该Java项目之前用的Oracle ...
- 服务器错误码显示,常见错误码说明
### Linux版 #### 验证KEY失败,错误码:1004 ![](https://upload.zkeys.com/2020/10/5f8fd93d9d132.png?token=uLsCsa ...
- NET_DVR_GetErrorMsg 返回最后操作的错误码信息
官网链接 NET_DVR_GetErrorMsg 返回最后操作的错误码信息. char * NET_DVR_GetErrorMsg( LONG * pErrorNo ); 参量 pErrorNo [o ...
- docker容器错误码
有时有些docker容器执行一段时间后退出了,为了查明原因采用查看下docker容器退出的错误码,具体步骤如下: 1.找出退出的容器,可以通过下面两种方式方式查找: docker ps --filte ...
- [微信官方文档] 小程序-错误码信息与解决方案表
错误码信息与解决方案表 错误码是通过binderror回调获取到的错误信息. 代码 异常情况 理由 解决方案 1000 后端错误调用失败 该项错误不是开发者的异常情况 一般情况下忽略一段时间即可恢复. ...
- 解决微信H5获取SDK授权报错提示errMsg: “config:fail,Error: 系统错误,错误码:63002,invalid signature [20200908 22:17:17][]“
如果常规检查都做过可以仔细看下微信开放文档 这个里面的报错原因 如果都不是那么极有可能是(恭喜你!看样子你的H5页面日活人数还蛮多[呲牙]) 获取腾讯微信平台access_token超过每日默认上限2 ...
- 【FFmpeg】ffmpeg中函数返回的错误码:AVERROR及AVERROR_*
1.AVERROR FFmpeg的错误码大部分使用的PIOSIX标准中错误码的负值. AVERROR定义在文件 FFmpeg-n4.2.1/libavutil/error.h 中 #define AV ...
最新文章
- centos 上传jar 命令_centos上快速将一个jar使用docker部署启动
- 人生永无止境的意思是什么_什么是莫比乌斯指环?莫比乌斯环的诅咒
- NOIP模拟测试19「count·dinner·chess」
- iPhone将NSString转换编码集为gb2312或者gbk的方法
- ubuntu下安装MySQL8.0
- kerberos验证_SQL Server中的服务主体名称和Kerberos身份验证概述
- 大数据与商业地理分析
- 【javascript】ajax 基础(转)
- Python第3次作业
- You must depend on an EXACT version of electron-prebuilt-compile not a range (got ^4.0.0)
- 准双向口和KELL C头文件已经处理
- java串口监控数据,怎样监听或者拦截串口上的数据
- php制作单位换算,在线单位换算器
- Go语言-复合数据结构(map)
- 运用Python轻松爬取网易云的音乐,小白都能懂的爬虫教程
- 华为手机SD卡升级指导
- 数据可视化(python)----中国近十年就业GDP对比
- DP(动态规划)总结
- 12款超牛的办公神器,个个功能强大,让工作轻松不累!
- html 订阅发布,发布订阅模式.html · Avan/blog_demo_defineProperty - Gitee.com