Добрый день!
Есть проект, где в БД 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