偶在用c++ 向mysql不停的写入数据的时候。
会出现问题:
1.内存在一点点的向上加(有耗内存的操作?)代码里好像没有申请内存操作。
2.当内存到了极限时(1.96)时会出现如题:“mysql server has gone away”
再也插不进数据。会提示错误。用到的代码:
sprintf(m_szBuffer,"SELECT * FROM %s WHERE %s",szTableName,szCondition);
if(0 !=mysql_query(&mysql,m_szBuffer))
{//查表出错
return FALSE;
}
m_res=mysql_store_result(&mysql);//把查询的结果存起来
if (m_res ==NULL)
return FALSE;
int count=mysql_num_rows(m_res);
if(count <=0)
{return FALSE;}
return TRUE;------------------
请问一下,上面有耗内存的操作吗?做极限测试(不停的向数据库写数据时)内存会慢慢积累,直到耗尽.
会出现问题:
1.内存在一点点的向上加(有耗内存的操作?)代码里好像没有申请内存操作。
2.当内存到了极限时(1.96)时会出现如题:“mysql server has gone away”
再也插不进数据。会提示错误。用到的代码:
sprintf(m_szBuffer,"SELECT * FROM %s WHERE %s",szTableName,szCondition);
if(0 !=mysql_query(&mysql,m_szBuffer))
{//查表出错
return FALSE;
}
m_res=mysql_store_result(&mysql);//把查询的结果存起来
if (m_res ==NULL)
return FALSE;
int count=mysql_num_rows(m_res);
if(count <=0)
{return FALSE;}
return TRUE;------------------
请问一下,上面有耗内存的操作吗?做极限测试(不停的向数据库写数据时)内存会慢慢积累,直到耗尽.
解决方案 »
- VC透明按钮问题
- 我们局长生气了,请问在VC中怎样修改注册表中SYSTEM下的键啊
- Mscomm控件和CserialPort类是什么关系?
- 关于VS ATL中给已生成的Component implement class添加interface
- cedit的multiline下如果按esc时退出程序 该如何处理?
- CVTRES : fatal error CVT1100: duplicate resource-- type:VERSION, name:1, language:0x0409
- 用vc6.0 activemovie控件做了一个多媒体播放器
- UDP 端口设为0,系统自动分配,但是分配后,如何得到系统分配的端口号?
- 我现在该如何是好????????????
- 请问怎样在CListView类中插入图象?
- 菜鸟问题 请高手不吝赐教 在线等 急!!!
- 有关DoDataExchange
但是只作这种查询操作的时候,也会出现每次占用12个字节,慢慢的积累。
外面访问这这样子:
数据库初始化的时候就已经打开,
g_pDB->myDBQuery(szTablename,szCondion);
m_szBuffer=new char[256];
怀疑:是不是m_res集太多,造成的内存碎片????
除此之外,再没有其它new 操作。
我定的MYSQL_RES *m_res是成员变量,现改成临时变量,放在每个查询函数里,每完成一次查询一次就free掉。程序运行了一晚上,没有发现内存占有的情况。
while (1)
{
sprintf(szAccount,"hao%d",i);
sprintf(buf,"user_Account='%s'",szAccount);
if(test.GetRecordCondition("player",buf))
{
test.GetRecordFieldInt("user_Id", nData);
}
}
thanks all