连接数据库,在自己机子上面一切正常(win7,vs2010下调试,ACCESS2007)。换其他电脑(安装ACCESS2007,xp系统),连接提示连接失败,无效指针,应该是在
m_pConnection->Open(strConnect,"","",adModeUnknown);这句出错了,但具体应该是什么错误,该怎么改,忘大神指导呀!
以下是代码!
int AdoAccess::OnInitADOConn()  //连接数据库
{
::CoInitialize(NULL);
//::AfxOleInit();
try
{

m_pConnection.CreateInstance("ADODB.Connection");
//AfxMessageBox(_T("连接1"));
_bstr_t strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=order.accdb;Persist Security Info=False;";
//AfxMessageBox(strConnect);
m_pConnection->Open(strConnect,"","",adModeUnknown); //AfxMessageBox(_T("连接3"));
// printf("连接数据库成功\n");
}
catch (_com_error e)
{
//printf("连接数据库失败\n");
AfxMessageBox(_T("连接失败"));
AfxMessageBox(e.ErrorMessage());
return 1;
} return 0;
}

解决方案 »

  1.   

    错误后关闭,提示信息:应用程序发生异常 unknow software exception(0x400000015),位置为0x78b2d635.
      

  2.   

    导入低版本的ado库,如XP系统上的
      

  3.   

    你应该是win7 sp1,这个是bug,微软有补丁的。打上就好了。
    微软官方解释:http://support.microsoft.com/kb/2640696补丁号:KB2640696下载安装后,对于VC++程序,另需要更改头文件中的ADO连接为如下:#import "c:\Program Files\Common Files\System\ado\msado60.tlb" no_namespace rename("EOF", "adoEOF")重新编译,发布问题解决。
      

  4.   

    m_pConnection.CreateInstance("ADODB.Connection");返回值是什么?m_pConnection.CreateInstance(__uuidof(Connection));试试
      

  5.   

    XP下,Provider=Microsoft.ACE.OLEDB.12.0,还是这个么?
      

  6.   

    在找到解决方法了。应该是ACCESS初始化上面有些小问题,还有就是安装ACCESS重复了,前一个没卸载干净,第三者就是msado15.dll这个文件,不应该改动的,应该使用xp自己带的。谢谢大家了!