ADO连接ACCESS换个操作系统运行报错有关问题
ADO连接ACCESS换个操作系统运行报错问题
大家好,我最近用VC6.0做了一个小程序碰到一个让人很郁闷的事情!我原先以为程序功能全部实现了,程序就可以提交了。但是我在做兼容性测试的时候发现:
1.我的系统(windows 7 32位)运行没有问题,以为在所有这个平台上运行都没有问题,但是经朋友测试不是所有win 7 32位的系统都能运行成功。
2.XP运行就报错,通过调试发现运行到_RecordsetPtr pRS("ADODB.Recordset"); 这句就崩溃了。
3.windows 7 64位的系统经我朋友和与我反复验证,发现其干脆就没有反应。我想很可能是其不支持VC6.0的原因吧!
以下是我连接数据库的代码
备注:temp为CString类型,可能有人会要我try..catch我试过了!直接跪了!而且通过反复确认路径没有问题
还有就是我在stdafx.h文件添加的一条代码为:
备注:msado15.dll版本为6.1.7601.17514
报的错都是:abnormal program termination
麻烦大家帮我看下,先谢谢了
------解决方案--------------------
WIN7的ADO版本GUID变了,需要在XP上编译,在WIN7上就会高版本兼容低版本可以运行了。
------解决方案--------------------
这的确可以解决大部分系统的问题,但是太死了!万一那个人的系统分区不是C盘那么。。。
这种情况不用考虑
如果真想解决,就不用import ... ado.dll
换其他的
大家好,我最近用VC6.0做了一个小程序碰到一个让人很郁闷的事情!我原先以为程序功能全部实现了,程序就可以提交了。但是我在做兼容性测试的时候发现:
1.我的系统(windows 7 32位)运行没有问题,以为在所有这个平台上运行都没有问题,但是经朋友测试不是所有win 7 32位的系统都能运行成功。
2.XP运行就报错,通过调试发现运行到_RecordsetPtr pRS("ADODB.Recordset"); 这句就崩溃了。
3.windows 7 64位的系统经我朋友和与我反复验证,发现其干脆就没有反应。我想很可能是其不支持VC6.0的原因吧!
以下是我连接数据库的代码
- C/C++ code
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文件添加的一条代码为:
- C/C++ code
#import "control\msado15.dll" no_namespace rename("EOF","rsEOF")
备注:msado15.dll版本为6.1.7601.17514
报的错都是:abnormal program termination
麻烦大家帮我看下,先谢谢了
------解决方案--------------------
WIN7的ADO版本GUID变了,需要在XP上编译,在WIN7上就会高版本兼容低版本可以运行了。
------解决方案--------------------
这的确可以解决大部分系统的问题,但是太死了!万一那个人的系统分区不是C盘那么。。。
这种情况不用考虑
如果真想解决,就不用import ... ado.dll
换其他的