Russian Qt Forum

Qt => Базы данных => Тема начата: Max Payne от Июнь 20, 2010, 23:02



Название: Тормозит sqlite
Отправлено: Max Payne от Июнь 20, 2010, 23:02
Привет всем... Вопрос вот в чем :
Создал большой проект с базой даных, с плеером и куча всего еще... и все было ок пока не дошло до конфигурирования и создания екзе файла...
В проекте использовал qsqlite для создания таблиц...
Вот пример как я это делал
Код:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
           db.setHostName("locallhost");
           db.setDatabaseName("Help_F3");
           db.setUserName("Max");
           db.setPassword("qwerty");
в проекте все работает ок, все запускаеться...
После того как собрал проект, закинул дллки нужные, запускаю екзе и все...
виснет минут на пять... начал розбираться, понял что дело в базе даных
При открытии приложения создаеться файл похож на мою базу только к имени дописано "journal"
потом через несколько секунд удаляється потом опять создаеться и так при каждом обращении к базе....
Кто с таким сталкивался просьба обяснить или посоветовать что с єтим делать...


Название: Re: Тормозит sqlite
Отправлено: Sergey B. от Июнь 21, 2010, 08:10
Вот это точно не надо.
Код:
           db.setHostName("locallhost");
           db.setUserName("Max");
           db.setPassword("qwerty");

А тут
Код:
           db.setDatabaseName("Help_F3");

Пропишите путь где будет лежать база, а то она может создаваться не там где вы хотите. Либо в папке с программой, либо в домашнем каталоге пользователя.
Через QApplication::applicationDirPath() либо
http://doc.trolltech.com/4.6/qdesktopservices.html#StandardLocation-enum (http://doc.trolltech.com/4.6/qdesktopservices.html#StandardLocation-enum)


Название: Re: Тормозит sqlite
Отправлено: whirlwind от Июнь 21, 2010, 13:57
При открытии приложения создаеться файл похож на мою базу только к имени дописано "journal"
потом через несколько секунд удаляється потом опять создаеться и так при каждом обращении к базе....
Кто с таким сталкивался просьба обяснить или посоветовать что с єтим делать...
это нормальное поведение для sqlite. Это резервная копия базы, чтобы можно было откатить транзакцию.

Вы уверены, что много времени занимает именно доступ к базе? Что именно вы с ней делаете?

Кстати, файл удаляется после завершения транзакции. Если это происходит через несколько секунд, значит, проблема где-то в другом месте


Название: Re: Тормозит sqlite
Отправлено: Max Payne от Июнь 22, 2010, 20:21
Ясно, почитал, разобрался , спасибо за помощь...