Название: после установки QSqlQuery в QSqlQueryModel перестаёт работать next() Отправлено: Varan от Февраль 14, 2012, 12:38 Если после создания и выполнения QSqlQuery установить её в QSqlQueryModel, то почему-то перестаёт работать QSqlQuery::next().
Странно, потому что в QSqlQueryModel::setModel() вроде передаётся константная ссылка. Что я делаю не так? Код
Название: Re: после установки QSqlQuery в QSqlQueryModel перестаёт работать next() Отправлено: Tonal от Февраль 15, 2012, 08:55 Все копии QSqlQuery разделяют общее состояние.
Внутри setQuery происходит копирование запроса и заполнение модели, что приводит к изменению состояния и исходного объекта, т. к. изменилось их разделяемое состояние. Вообще-то это протекание абстракции и либо должно быть исправлено, либо описано в документации. :) На это намекает дока по setQuery, где написано, что запрос должен быть активным... Т. е. твоя проблема решается заведением второго объекта запроса (не копированием). Название: Re: после установки QSqlQuery в QSqlQueryModel перестаёт работать next() Отправлено: Varan от Февраль 15, 2012, 10:05 Спасибо за ответ.
Т.е. надо сделать ещё один экземпляр QSqlQuery и снова для него вызывать exec()? Название: Re: после установки QSqlQuery в QSqlQueryModel перестаёт работать next() Отправлено: Пантер от Февраль 15, 2012, 10:10 Т.е. надо сделать ещё один экземпляр QSqlQuery и снова для него вызывать exec()? Да. А зачем оно тебе, если есть модель? У нее и запрашивай данные. |