VC++ADO连接程序路径上的Access数据库,总提示未知异常
VC++ADO连接程序路径下的Access数据库,总提示未知错误
如题,代码如下
AfxOleInit();
CString appPath;
GetModuleFileName(NULL,appPath.GetBufferSetLength(255+1),255);
appPath.ReleaseBuffer();
int len = appPath.ReverseFind('\\') + 1;
CString sysPath = appPath.Left(len);
HRESULT hr;
m_ConnState=FALSE;
try
{
hr=m_pCon.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
CString dbPath="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+sysPath+"餐饮管理.accdb";
hr=m_pCon->Open(_bstr_t(dbPath),"","",adModeUnknown);
if(SUCCEEDED(hr))
m_ConnState=TRUE;
}
}
catch(_com_error e)
{
CString errorMessage;
errorMessage.Format("连接数据库错误\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errorMessage);
}
问题出在哪里??求指点!
------解决方案--------------------
如果是ACCESS2007,驱动字符串Microsoft.Jet.OLEDB.4.0;换成Microsoft.ACE.OLEDB.12.0;
如题,代码如下
AfxOleInit();
CString appPath;
GetModuleFileName(NULL,appPath.GetBufferSetLength(255+1),255);
appPath.ReleaseBuffer();
int len = appPath.ReverseFind('\\') + 1;
CString sysPath = appPath.Left(len);
HRESULT hr;
m_ConnState=FALSE;
try
{
hr=m_pCon.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
CString dbPath="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+sysPath+"餐饮管理.accdb";
hr=m_pCon->Open(_bstr_t(dbPath),"","",adModeUnknown);
if(SUCCEEDED(hr))
m_ConnState=TRUE;
}
}
catch(_com_error e)
{
CString errorMessage;
errorMessage.Format("连接数据库错误\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errorMessage);
}
问题出在哪里??求指点!
------解决方案--------------------
如果是ACCESS2007,驱动字符串Microsoft.Jet.OLEDB.4.0;换成Microsoft.ACE.OLEDB.12.0;