ADO连接ACCESS换个操作系统运行报错问题

dingdingzone 2012-04-23 10:43:42
大家好,我最近用VC6.0做了一个小程序碰到一个让人很郁闷的事情!我原先以为程序功能全部实现了,程序就可以提交了。但是我在做兼容性测试的时候发现:
1.我的系统(windows 7 32位)运行没有问题,以为在所有这个平台上运行都没有问题,但是经朋友测试不是所有win 7 32位的系统都能运行成功。
2.XP运行就报错,通过调试发现运行到_RecordsetPtr pRS("ADODB.Recordset"); 这句就崩溃了。
3.windows 7 64位的系统经我朋友和与我反复验证,发现其干脆就没有反应。我想很可能是其不支持VC6.0的原因吧!

以下是我连接数据库的代码

CoInitialize(NULL);
_ConnectionPtr pConn("ADODB.Connection");
_RecordsetPtr pRS("ADODB.Recordset"); //XP过不了这句
temp="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+m_datapath+"\\data\\database.mdb";
pConn->ConnectionString=(_bstr_t)temp;
pConn->Open("","","",-1);
temp="....";
pRS=pConn->Execute((_bstr_t)temp,NULL,adCmdText);
.....
pRS->Close();
pConn->Close();
pRS.Release();
pConn.Release();
CoUninitialize();

备注:temp为CString类型,可能有人会要我try..catch我试过了!直接跪了!而且通过反复确认路径没有问题

还有就是我在stdafx.h文件添加的一条代码为:

#import "control\msado15.dll" no_namespace rename("EOF","rsEOF")

备注:msado15.dll版本为6.1.7601.17514

报的错都是:abnormal program termination

麻烦大家帮我看下,先谢谢了
...全文
134 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingdingzone 2012-04-24
  • 打赏
  • 举报
回复
还有个问题VC6编写的MFC程序是不是一定不可能在windows 7 64位下面运行呀?我找了几个朋友试了下,根本就点不开!做过其他尝试,除了使用虚拟机外!其他都以失败告终,大家有不有解决方法呀?
(我试过通过VS2010转化来解决,转换过后错误太多根本就无从改起)
dingdingzone 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

前一阵我也遇到这个问题,安装补丁KB983246就好了
在csdn资源里有xp vista和win7的这个补丁
[/Quote]
谢谢 这绝对是解决这个问题最好的方法
BombZhang 2012-04-24
  • 打赏
  • 举报
回复
前一阵我也遇到这个问题,安装补丁KB983246就好了
在csdn资源里有xp vista和win7的这个补丁
向立天 2012-04-24
  • 打赏
  • 举报
回复
应该是兼容性的问题
把msado15.dll给程序带着放到执行目录下试试

4,017

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧