我的SQlite是一个简单的Unicon的中文字典。
测试中当调用查询的时候将不断增长内存。
#include "Idatabase.h"
Idatabase::Idatabase(const QString & name_):name_database(name_)
{
if (QFile::exists(name_))
{
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(name_);
db.open();
query = new QSqlQuery(db);
}
}
Idatabase::~Idatabase(void)
{
if (db.isOpen())
{
db.close();
}
QSqlDatabase::removeDatabase(name_database);
delete query;
}
int Idatabase::Select(const QString& sql,QStringList &output_)//此调用
{
// QString sql=QString("select * from zhcn where py Like '%1%'").arg(input_);
QStringList output_m;
query->prepare(sql);
if (!query->exec())
{
return 0;
}
output_.clear();
while(query->next())
{
output_m.push_back(query->value(2).toString());
}
if (!output_m.isEmpty())
{
output_ = output_m;
}
else
output_.clear();
return output_m.size();
}
我在上位机上没有问题,但下载到arm-linux的板子上内存不停的增加,哪位可以指导下
------解决方案--------------------
在arm-linux下的栈只有8K
Mark
------解决方案--------------------
我也在做qt输入法,你是怎么创建的中文字典数据库阿?谢谢
------解决方案--------------------
我做的是直接在构造函数里把码表加载到内存的在板上跑着还可以。看到你的想换成数据库试试