急 问Access数据库资源释放的问题 真心求教
虽然发的帖子不太是地方
这里人气旺
就是 我调用方法 弹出对话框 同时列出数据库的一些内容
但是我关闭对话框 再打开 就抛出异常了
是不是 数据库资源没有释放的问题啊?
代码如下:
BOOL CDlgDetail::OnInitDialog()
{
CDialog::OnInitDialog();
// 初始化COM,创建ADO连接等操作
AfxOleInit();
HRESULT hr;
try{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb","","",adModeUnknown);
///连接数据库
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n 错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);//显示错误信息
}
UpdateData();
m_pRecordset.CreateInstance(__uuidof(Recordset));
try
{
m_pRecordset->Open("select * from liang ", // 查询DemoTable表中所有字段
m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
while(!m_pRecordset->adoEOF)
{
_variant_t time;
_variant_t movie;
time = m_pRecordset->GetCollect ("time");
movie = m_pRecordset->GetCollect ("movie");
CString s_time =(char *)_bstr_t(time);
CString s_movie =(char *)_bstr_t(movie);
s_time.TrimRight();
s_movie.TrimRight();
m_lst.AddString(s_time);
m_lst.AddString(s_movie);
m_pRecordset->MoveNext();
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgDetail::OnClose()
{
// m_pRecordset->Close();///关闭记录集 ,执行到这句抛出异常 需要注释掉
m_pConnection->Close();///关闭连
CDialog::OnClose();
}
我想每次打开对话框 就调用数据库
下次打开不抛出异常
请问 我是不是资源没有释放对啊
真心求教