采用ADO方式连接ACCESS数据库时,win7运行正常,XP和Windows2008运行错误
采用ADO方式连接ACCESS数据库时,相同的应用程序在win7下面运行没有问题,但是在xp下创建connection的实例就失败,而在Windows20008版本下,执行open时失败,您看这主要是什么原因。
我在win7下采用VS2008编写的程序,其它机器上都没有安装VS2008.
代码:
hr = m_pConnection.CreateInstance("ADODB.Connection");//XP下运行错误,win7和win2008运行正确
if(SUCCEEDED(hr)){
MessageBox(L"ACEESS create succeed",L"DEMO",MB_OK);
//设置连接字符串
//CString strConnect=L"DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=;DBQ=biodata.mdb;";
CString strConnect=L"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=biodata.mdb;";
//使用Open方法连接数据库
try{
hr = m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);//win2008错误
if(SUCCEEDED(hr)){
MessageBox(L"ACEESS connection succeed",L"DEMO",MB_OK);
}else{
MessageBox(L"ACEESS ACEESS connection failed",L"DEMO",MB_OK);
return -1;
}
}catch(_com_error e){
CString errormessage;
errormessage.Format(L"连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
MessageBox(L"ACEESS ACEESS connection failed2",L"DEMO",MB_OK);
return -1;
}
}else{
MessageBox(L"ACEESS create failed",L"DEMO",MB_OK);
return -1;
} access xp Windows7 Windows2008 ADO
[解决办法]
WIN7下编译的????WIN7的ado15.dll与其他系统不兼容!!!拷贝个XP的ado15.dll到WIN7下在编译,或者直接把工程移到XP下重新编译一次;我也遇到过这个问题
[解决办法]
注意64位和32位操作系统下配置ADO连接的不同。