Добрового времени суток, друзья. Есть одна забавная ситуация. При создании коннекта к базе данных и выполнении QSqlQuery увеличивается потребляемая приложением память. С чем бы это могло быть связано.
Вот код тестовой функции:
void testFunction() {
// имя базы данных
QString DBname = "myDB";
{
// создание соединения с базой данных
QSqlDatabase mainDB = QSqlDatabase::addDatabase("QMYSQL", DBname);
// установление параметров соединения
mainDB.setHostName(MainDBHostName);
mainDB.setDatabaseName(MainDBDatabaseName);
mainDB.setUserName(MainDBUserName);
mainDB.setPassword(MainDBUserPass);
// открытие базы данных
if(!mainDB.open()) {
sendLogMsg("cannot open database");
sendLogMsg(mainDB.lastError().text());
return;
}
}
{
// создание и выполнение запроса к БД
// сам запрос увесистый, выборки 6000+ строк таблицы
QSqlQuery tempQuery(QSqlDatabase::database(DBname));
tempQuery.exec("select * from organisations");
tempQuery.clear();
tempQuery = 0;
}
// закрытие соединения с базой данных
(QSqlDatabase::database(DBname)).close();
QSqlDatabase::removeDatabase(DBname);
qDebug() << "database deleted";
}
Суть в том, что моему приложению нужно будет временно создавать соединение к БД, затем выполнять запросы и удалять соединение. Постоянно поддерживать его нельзя. Как же быть, если потребляемая память постепенно увеличивается. 200 вызовов такой функции увеличивают потребление на 200кб. На что? Помогите разобраться, пожалуйста.