本人初来乍到,没有积分送,友情赞助,帮解答下。等有积分后,补上。不胜感激。谢谢!。
求助:vc6.0 采用ADO访问,Oracle数据库,每次在用ADO方式向Oracle数据库插入新的数据时,内存就不断在增加?为什么?请指教。下面是程序:BOOL COracleDBDlg::OnInitDialog()
{
// TODO: Add extra initialization here
SetTimer(1,1000,NULL);
return TRUE; // return TRUE unless you set the focus to a control
}
//连接数据库
void COracleDBDlg::ConnectDB()
{ try
{
m_pConnection.CreateInstance(_uuidof(Connection));
m_pConnection->Open("Provider=MSDAORA.1;Data Source=mike;user=system;password=manager;", "" ,"" ,adModeUnknown); }
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}}//断开数据库连接
void COracleDBDlg::ExitDB()
{
m_pRecordset->Close();
m_pRecordset.Release();
m_pConnection->Close();
m_pConnection.Release();
}//插入数据到数据库中
BOOL COracleDBDlg::InsertDB(CString aa, CString bb, CString cc)
{
//插入数据到数据库
try
{
CString sql0;
sql0.Format("insert into JIUZHOU.water(JHSJ , BDWZ , FIRE) values('%s','%s','%s')",aa, bb, cc);
m_pConnection->Execute((_bstr_t)sql0, NULL , adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
return false;
}
}void COracleDBDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
switch(nIDEvent)
{
case 1:
ConnectDB(); //连接数据库 m_strJhsj = "2010-10-3";
m_strBdwz = "北京";
m_strFire = "hospital";
//插入数据到数据库
InsertDB(m_strJhsj, m_strBdwz, m_strFire); ExitDB(); //断开数据库连接
break;
default:break;
} CDialog::OnTimer(nIDEvent);
}
求助:vc6.0 采用ADO访问,Oracle数据库,每次在用ADO方式向Oracle数据库插入新的数据时,内存就不断在增加?为什么?请指教。下面是程序:BOOL COracleDBDlg::OnInitDialog()
{
// TODO: Add extra initialization here
SetTimer(1,1000,NULL);
return TRUE; // return TRUE unless you set the focus to a control
}
//连接数据库
void COracleDBDlg::ConnectDB()
{ try
{
m_pConnection.CreateInstance(_uuidof(Connection));
m_pConnection->Open("Provider=MSDAORA.1;Data Source=mike;user=system;password=manager;", "" ,"" ,adModeUnknown); }
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}}//断开数据库连接
void COracleDBDlg::ExitDB()
{
m_pRecordset->Close();
m_pRecordset.Release();
m_pConnection->Close();
m_pConnection.Release();
}//插入数据到数据库中
BOOL COracleDBDlg::InsertDB(CString aa, CString bb, CString cc)
{
//插入数据到数据库
try
{
CString sql0;
sql0.Format("insert into JIUZHOU.water(JHSJ , BDWZ , FIRE) values('%s','%s','%s')",aa, bb, cc);
m_pConnection->Execute((_bstr_t)sql0, NULL , adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
return false;
}
}void COracleDBDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
switch(nIDEvent)
{
case 1:
ConnectDB(); //连接数据库 m_strJhsj = "2010-10-3";
m_strBdwz = "北京";
m_strFire = "hospital";
//插入数据到数据库
InsertDB(m_strJhsj, m_strBdwz, m_strFire); ExitDB(); //断开数据库连接
break;
default:break;
} CDialog::OnTimer(nIDEvent);
}
添加析构函数,只在定时器里加入插入操作。
连接操作放在
BOOL COracleDBDlg::OnInitDialog()
{
ConnectDB(); //连接数据库
}析构函数里放断开数据库操作
COracleDBDlg::~COracleDBDlg
{
m_pRecordset->Close();
m_pRecordset.Release();
m_pConnection->Close();
m_pConnection.Release();}
方法是这样的,看还有什么需要改进的,请指教?
高手们希望给予指教,谢谢!