代码如下:
_RecordsetPtr  m_pSourceSet;
_ConnectionPtr  m_pDB; if(m_pDB==NULL) hr=m_pDB.CreateInstance(__uuidof(Connection));  
try  
{  
if(m_pDB->State)
{
m_pDB->Close();
}
m_pDB->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data  Source=DataBase.mdb","","",adConnectUnspecified);                          
}
catch  (_com_error &e)  
{
CString str;
str.Format("由于以下原因导致数据库无法打开:\n%s",(char*)e.Description());
AfxMessageBox(str, MB_OK | MB_ICONEXCLAMATION);
return FALSE;
}运行出现由于“以下原因导致数据库无法打开:
(NULL)”

解决方案 »

  1.   

    m_pDB->State是不可知状态吧,把这段代码去掉看看:
    if(m_pDB->State)
    {
    m_pDB->Close();
    }
      

  2.   

    加上 ::CoInitialize(NULL);后出现了“由于以下原因导致数据库无法打开:找不到可安装的ISAM”
      

  3.   

    Data Source(我的)
    Data  Source(你的)
    中件多一个空格导致
      

  4.   

    连接语句这个试试:Provider=Microsoft.Jet.OLEDB.4.0;Password=;Data Source=DataBase.mdb;Persist Security Info=True
      

  5.   

    把adConnectUnspecified替换
    用adModeUnknown
    试试