Russian Qt Forum

Qt => Базы данных => Тема начата: Crazy Sage от Март 04, 2015, 13:34



Название: Увеличение времени ожидания при обращении к mdb файлу через QSqlConnection
Отправлено: Crazy Sage от Март 04, 2015, 13:34
Добрый день, возник такой вопрос:
Есть программа, подключающаяся к базе данных ms access (mdb файл) через QSqlDatabase/QSqlQuery
Есть запрос, который проверяет по имени файла, записан ли этот файл в базу, банальным SELECT id FROM table WHERE path=
Проблема в том, что с определенного числа записей в таблице этот запрос выполняется очень долго, если его делать через access, то тот подвисает на некоторое время, но всё же выдаёт результат, а вот через QSqlQuery иногда происходит облом с ошибкой "не хватает системных ресурсов".
Можно ли как-то увеличить время ожидания для QSqlQuery или ещё как-то решить подобную проблему?
Возможности сменить формат базы нет.


Название: Re: Увеличение времени ожидания при обращении к mdb файлу через QSqlConnection
Отправлено: Bepec от Март 04, 2015, 13:51
Писать в таблицу не путь, а хеш пути. Скорость должна возрасти как бы.
Ну, это мнение любителя )))


Название: Re: Увеличение времени ожидания при обращении к mdb файлу через QSqlConnection
Отправлено: Johnik от Март 04, 2015, 13:59
попробуйте:
Код
C++ (Qt)
void QSqlQuery::setForwardOnly(bool forward)
с параметром true


Название: Re: Увеличение времени ожидания при обращении к mdb файлу через QSqlConnection
Отправлено: Crazy Sage от Март 04, 2015, 14:06
попробуйте:
Код
C++ (Qt)
void QSqlQuery::setForwardOnly(bool forward)
с параметром true

Спасибо, попробую


Название: Re: Увеличение времени ожидания при обращении к mdb файлу через QSqlConnection
Отправлено: Johnik от Март 04, 2015, 14:19
и еще индекс на столбец path повесить, правда не знаю как с этим делом в access