Russian Qt Forum

Qt => Базы данных => Тема начата: mokynis от Октябрь 09, 2012, 09:03



Название: SQLite-не нормально работает QTableView::selectRow()
Отправлено: mokynis от Октябрь 09, 2012, 09:03
не пойму-это глюк SQlite или мой: Имеется таблица в базе на 2000 записей. Пытаюсь выделить нужную мне строку-выделяет через раз. Тогда делаю отдельную форму с tableView (SELECT * FROM таблица), lineEdit и кнопкой, которая по щелчку делает
Код:
ui->tableView->selectRow(ui->lineEdit->text().toInt());
Если в lineEdit записано что-то около 250-все выделяется нормально. Если написать 300-ничего не происходит вообще. Но если последовательно переходить на 210,220, 225,235 и т.п., то запросто можно и до 1000 дойти, и до конца. После того, как выделилась n-я строка можно вернуться в начало и опять сразу попасть на уже ранее "посещенную" строку-шаги до нее уже не требуются. Причем "шаги" каждый раз после перезапуска программы разные, но первый всегда меньше 300. Та же таблица, но в MySQL работает без проблем в той же программе. Что это может быть? Программа будет однопользовательская, не хотелось бы ради нее ставить MySQL.


Название: Re: SQLite-не нормально работает QTableView::selectRow()
Отправлено: Пантер от Октябрь 09, 2012, 09:08
Из SQlite данные подгружаются пачками по 256 записей.
Используй
http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#canFetchMore
http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#fetchMore


Название: Re: SQLite-не нормально работает QTableView::selectRow()
Отправлено: mokynis от Октябрь 09, 2012, 13:29
спасибо. Понял