Sqlite插入数据 内存不断增长怎么解决?
Sqlite插入数据 内存不断增长如何解决????
用的是Sqite3 版本 和C++ 封装的操作Sqlite的相关类CppSQLite3DB。。。,用函数一样
在定时器中定时插入数据库,每秒执行一次, 则内存不断增长,执行VACCUM命令没有任何作用,
哪位遇到过,如何解决
void CTestDlg::OnTimer(UINT nIDEvent)
{
CString sql;
CppSQLite3DB db;
int var1=rand()%100+1;
int var2=rand()%150+1;
int var3=rand()%200+1;
try
{
db.open("c:\\test.db");
sql.Format("insert into data(var1,var2,var3) values(%d,%d,%d)",var1,var2,var3);
db.execQuery(sCmd);
//执行
//db.execQuery("VACUUM");
db.close();
}
catch (CppSQLite3Exception& e)
{
CString err;
err.Format("执行错误-错误代码:%d 错误消息:%s",e.errorCode(),e.errorMessage());
SetWindowText(err);
}
CDialog::OnTimer(nIDEvent);
}
------解决方案--------------------
一秒插入一次,插入数据也太频繁了,可否优化一下数据插入等
------解决方案--------------------
你不应该是每次都做打开或关闭操作,在初始化的时候做一次打开 db.open("c:\\test.db");
------解决方案--------------------
楼主可以自己封装SQLite3的操作类来实现,好控制一点
------解决方案--------------------
现在我正在封装sqlite。。。
------解决方案--------------------
execQuery怎么实现的?是不是用 sqlite3_get_table?要是的话要free的,而仅仅是sqlite3_exec倒没问题
------解决方案--------------------
看我七楼的问题啊,sqlite的函数有的都是成对使用的,看看你的是怎么封装的啊
用的是Sqite3 版本 和C++ 封装的操作Sqlite的相关类CppSQLite3DB。。。,用函数一样
在定时器中定时插入数据库,每秒执行一次, 则内存不断增长,执行VACCUM命令没有任何作用,
哪位遇到过,如何解决
void CTestDlg::OnTimer(UINT nIDEvent)
{
CString sql;
CppSQLite3DB db;
int var1=rand()%100+1;
int var2=rand()%150+1;
int var3=rand()%200+1;
try
{
db.open("c:\\test.db");
sql.Format("insert into data(var1,var2,var3) values(%d,%d,%d)",var1,var2,var3);
db.execQuery(sCmd);
//执行
//db.execQuery("VACUUM");
db.close();
}
catch (CppSQLite3Exception& e)
{
CString err;
err.Format("执行错误-错误代码:%d 错误消息:%s",e.errorCode(),e.errorMessage());
SetWindowText(err);
}
CDialog::OnTimer(nIDEvent);
}
------解决方案--------------------
一秒插入一次,插入数据也太频繁了,可否优化一下数据插入等
------解决方案--------------------
你不应该是每次都做打开或关闭操作,在初始化的时候做一次打开 db.open("c:\\test.db");
------解决方案--------------------
楼主可以自己封装SQLite3的操作类来实现,好控制一点
------解决方案--------------------
现在我正在封装sqlite。。。
------解决方案--------------------
execQuery怎么实现的?是不是用 sqlite3_get_table?要是的话要free的,而仅仅是sqlite3_exec倒没问题
------解决方案--------------------
看我七楼的问题啊,sqlite的函数有的都是成对使用的,看看你的是怎么封装的啊