社区
数据库
帖子详情
MFC用ADO连接ACCESS数据库,内存持续增长
silverpal
2011-08-06 01:07:32
如题,我只是连接上数据库,读取一张表中的数据,然后就什么都没做了,但是任务管理器上显示内存一直在增长,每次512字节,不知道为什么.请大侠们指点一二.
...全文
69
4
打赏
收藏
MFC用ADO连接ACCESS数据库,内存持续增长
如题,我只是连接上数据库,读取一张表中的数据,然后就什么都没做了,但是任务管理器上显示内存一直在增长,每次512字节,不知道为什么.请大侠们指点一二.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jonglin
2011-09-13
打赏
举报
回复
等待解决方法
我在写表的时候遇到相同的问题,看了好久还是解决不掉!崩溃啊
silverpal
2011-08-06
打赏
举报
回复
bool CDbAdo::OpenRecordset(char* szSQL)
{
try
{
//关闭记录集
CloseRecordset();
m_ptrRecordset->Open(szSQL, m_ptrConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
return true;
}
catch(_com_error& comError)
{
RecordErrorMsg(comError);
}
return false;
}
bool CDbAdo::CloseRecordset()
{
try
{
if(IsRecordsetOpened())
DetectResult(m_ptrRecordset->Close());
return true;
}
catch(_com_error& comError)
{
RecordErrorMsg(comError);
}
return false;
}
void CDbAdo::MoveToNext()
{
try
{
m_ptrRecordset->MoveNext();
}
catch(_com_error& comError)
{
RecordErrorMsg(comError);
}
}
void CDbAdo::MoveToFirst()
{
try
{
m_ptrRecordset->MoveFirst();
}
catch(_com_error& comError)
{
RecordErrorMsg(comError);
}
}
long CDbAdo::GetRecordCount()
{
try
{
if(m_ptrRecordset==NULL)
return 0;
return m_ptrRecordset->GetRecordCount();
}
catch(_com_error& comError)
{
RecordErrorMsg(comError);
}
return 0;
}
bool CDbAdo::GetFieldValue(LPCTSTR lpcsrFieldName, LONG& lValue)
{
lValue = 0L;
try
{
_variant_t vtFld = m_ptrRecordset->Fields->GetItem(lpcsrFieldName)->Value;
if((vtFld.vt!=VT_NULL)&&(vtFld.vt!=VT_EMPTY))
lValue = vtFld.lVal;
return true;
}
catch(_com_error& comError)
{
RecordErrorMsg(comError);
}
return false;
}
silverpal
2011-08-06
打赏
举报
回复
[Quote=引用 1 楼 acaiacc 的回复:]
看看循环里面做了什么
每次都重新连接?
[/Quote]
我只连接了一次数据库,就一直保持连接的状态.开始读取数据前打开表,读取完成以后关闭表.
你指的循环是读取表中数据的循环吗?
if(DbAdo.OpenRecordset("select DateNum from HistoryRecord")==false)
{
AfxMessageBox(DbAdo.m_strErrorMsg,MB_OK | MB_ICONERROR);
}
else
{
long date_num;
long record_num=0;
record_num=DbAdo.GetRecordCount();
DbAdo.MoveToFirst();
for(int i=0;i<record_num;i++)
{
if(DbAdo.GetFieldValue(_T("DateNum"),date_num))
{
strTemp.Format(_T("%ld"),date_num);
m_DateNum.AddString(strTemp);
}
DbAdo.MoveToNext();
}
if(DbAdo.CloseRecordset()==false)
{
AfxMessageBox(DbAdo.m_strErrorMsg,MB_OK | MB_ICONERROR);
}
}
acaiacc
2011-08-06
打赏
举报
回复
看看循环里面做了什么
每次都重新连接?
数据库
编程总结[转载 深之JohnChen的专栏]
数据库
编程总结当前各种主流
数据库
有很多,包括Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase / Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, MS
ACCESS
等等。
数据库
编程是对
数据库
的创建、读写等一列的操作。
数据库
编程分为
数据库
客户端编程与
数据库
服务器端编程。数据
数据库
编程总结
当前各种主流
数据库
有很多,包括Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase / Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, MS
ACCESS
等等。
数据库
编程是对
数据库
的创建、读写等一列的操作。
数据库
编程分为
数据库
客户端编程与
数据库
服务器端编程。
数据库
客户端编程主要使
数据库
编程
当前各种主流
数据库
有很多,包括Oracle,MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase / Firebird, PostgreSQL,SQLite, SAP/DB, TimesTen, MS
ACCESS
等等。
数据库
编程是对
数据库
的创建、读写等一列的操作。
数据库
编程分为
数据库
客户端编程与
数据库
服务器端编程。
数据库
客户端编程主要使用O
【转】
数据库
编程总结
from: http://blog.csdn.net/byxdaz/archive/2010/04/11/5473557.aspx当前各种主流
数据库
有很多,包括Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase / Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, M
VC
数据库
编程总结(二)
非常详尽地介绍了VC中
数据库
编程的各种方法,大侠们长期经验的总结,不可多得的文章。
数据库
4,011
社区成员
39,816
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章