AfxEnableControlContainer();
AfxOleInit();//初始化COM库 //以下是连接access2003数据库
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象 if(SUCCEEDED(hr))
{
m_pConnection->ConnectionTimeout=8;///设置超时时间为8秒
m_pConnection->PutCursorLocation(adUseClient);
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\\yandu.mdb;","","",adModeUnknown);
}
} catch(_com_error e)///捕捉异常
{
CString temp;
temp.Format("连接数据库错误信息:%s",e.ErrorMessage());
::MessageBox(NULL,temp,"提示信息",NULL);///////////////////标记1////////////////
return false;
}程序跑到“标记1”时候提示
这个程序不是我写的 不太明白什么意思 和怎么解决这个问题让程序能继续跑下去错误信息是:连接数据库错误信息:class not registered
AfxOleInit();//初始化COM库 //以下是连接access2003数据库
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象 if(SUCCEEDED(hr))
{
m_pConnection->ConnectionTimeout=8;///设置超时时间为8秒
m_pConnection->PutCursorLocation(adUseClient);
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\\yandu.mdb;","","",adModeUnknown);
}
} catch(_com_error e)///捕捉异常
{
CString temp;
temp.Format("连接数据库错误信息:%s",e.ErrorMessage());
::MessageBox(NULL,temp,"提示信息",NULL);///////////////////标记1////////////////
return false;
}程序跑到“标记1”时候提示
这个程序不是我写的 不太明白什么意思 和怎么解决这个问题让程序能继续跑下去错误信息是:连接数据库错误信息:class not registered
你MessageBox下面不是写的return false;了吗?出错直接return返回是对的,还有继续往下执行的必要吗?
如果一定要往下执行,去掉你的return false;即可~
程序退出时加上CoUninitialize( );
这个错误貌似在说ado没有注册...看看注册表HKCR下有没有ADODB.Connection项
try
{
//你的ADO代码
}
catch (_com_error& e)
{
AfxMessageBox(e.Description());
}
HRESULT hr = m_pConnection.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
{
_com_error e(hr);
AfxMessageBox(e.ErrorMessage());
return;
}