Russian Qt Forum

Qt => Базы данных => Тема начата: utking от Декабрь 14, 2012, 03:10



Название: QSqlTableModel и QSqlQuery не видят некоторые строки выборки
Отправлено: utking от Декабрь 14, 2012, 03:10
Добрый день!
Есть проект, где в БД SQLite пишутся данные по работе с клиентами. Каждая запись - это наряд на работу. Каждый наряд имеет комментарии менеджера, которые могут пополняться, и потому комментарии вынесены в отдельную таблицу, которая связана с главной таблицей нарядов номером самого наряда.

При попытке отобразить записи в QTableView через модель я вижу что строки отображаются не все. Теряются строки с добавленными комментариями. Проверил простым запросом QSqlQuery количество возвращаемых строк - выдает меньше, чем есть на самом деле. SQLiteBrowser показывает все строки и в созданной в БД вьюшке и по запросу, который организует эту вьюшку.

Простой код, для проверки
Код:
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("./watcher.db");
    db.open();
    if (!db.isOpen())
        qDebug() << db.lastError().text();
    QSqlQuery query(db);
    query.prepare("select count(*) from (SELECT itms.id, itms.ord_number, itms.client, itms.ord_date, itms.sent_date, itms.done_date, ((strftime('%s', done_date)-strftime('%s', sent_date))/3600/24) dates_diff, c.comment, itms.item_date, itms.manager FROM CURRENT_ITEMS itms, COMMENTS c WHERE c.ord_number = itms.ord_number GROUP BY itms.ord_number HAVING item_date = max(item_date) and comment_date = max(comment_date))");
    query.exec();
    if (query.next())
        qDebug() << query.record().value(0);

Win7 32bit. Qt 4.8.0. QtCreator 2.4.1


Название: Re: QSqlTableModel и QSqlQuery не видят некоторые строки выборки
Отправлено: Figaro от Декабрь 14, 2012, 07:26
Базу в аттаче вижу, теперь минимально компилируемый проект в студию..


Название: Re: QSqlTableModel и QSqlQuery не видят некоторые строки выборки
Отправлено: utking от Декабрь 14, 2012, 07:33
В аттаче

Интересно, что проблема не проявляется под Debian 6 с Qt 4.6.3


Название: Re: QSqlTableModel и QSqlQuery не видят некоторые строки выборки
Отправлено: utking от Декабрь 14, 2012, 08:33
Тему можно закрыть. Заработало без проблем на Qt 4.6.4. Видимо в 4.8.0 есть баг