Название: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: panAlexey от Октябрь 25, 2011, 20:59 Если пишу в табличку (insert into | UPDATe), которая используется через QSqlQueryModel присобаченый к QTableView
мне надо этой модели сделать рефрешь? или можно как-то иначе сделать? или там таймеры есть, которые через некоторое время подхватят изменения? может их задать (таймеры)? Название: Re: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: Пантер от Октябрь 25, 2011, 21:32 Нужно делать рефрешь вручную.
Название: Re: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: panAlexey от Октябрь 25, 2011, 23:49 Нужно делать рефрешь вручную. понял, не проблема.у меня в 1С и таймеры с заданием времени и вручную можно обновить. думаю всетаки и таймер прикрутить для варианта работы по сети. ПС. в 1С вьюву можно скомандовать гИсточникДанных.Обновить (http://www.1cpp.ru/docum/icpp/html/TableField.html#refresh)(ТекСтрока); и вьюв спозиционируется на объекте в ТекСтрока. если возможность делать такое с QSqlQueryModel? Название: Re: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: maint от Октябрь 26, 2011, 04:52 нельзя. Только целиком. Как и в 1С, внутри. Если не прекратить думать категориями 1с-быдлокодера , в программировании делать нечего.
Название: Re: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: Пантер от Октябрь 26, 2011, 08:32 panAlexey, есть нотификаторы, но не во всех БД. Я их с постгресом юзал - удобная штука.
Название: Re: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: panAlexey от Октябрь 26, 2011, 11:28 нельзя. Только целиком. Как и в 1С, внутри. Если не прекратить думать категориями 1с-быдлокодера , в программировании делать нечего. Не надо дутого высокомерия.Та концепция позиционирования весьма удобна, пара запросов с лимитами "вверх" и "вниз" относительно ключевого элемента сортировкой и уже понятно сколько данных надо отдать вьюву для отображения в нужной позиции и установки курсора. Только нужно плотное взаимодействие вьюва и запросов. Это очень часто применяется на практике. Если этой возможности нет, мне прийдется её манипулировать. Название: Re: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: panAlexey от Октябрь 26, 2011, 11:53 panAlexey, есть нотификаторы, но не во всех БД. Я их с постгресом юзал - удобная штука. Я не про то спрашивал.У меня вьювы и формы элементов строются из единой фабрики, так что скомандовать "обновись" при записи элемента для меня не проблема. Проблема в следующем. Если записывается новый элемент, то я хочу, чтобы в том QTableView из которого пошло создание этот элемент стал текущим. Найти и проинформировать этот вьюв не проблема, нотификатор не требуется. Проблема в позиционировании. У этого вьюва есть запрос. Соответственно надо сделать рефрешь модели, что-бы новый элемент подхватился запросом. Потом думаю перебрать запрос модели, в запросе в определенном поле сидит ключ этого элемента. Надо найти порядковую запись строки запроса в котором сидит этот ключ, и построить QModelIndex по этим данным, а вьюву дать команду на позиционирование на этом индексе. Вот такой миниплан. Получится? Или будут палки в колеса? Название: Re: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: Пантер от Октябрь 26, 2011, 11:59 Я в свое время тупо сохранял ID, рефрешал и делал перебор, пока не найду нужную запись.
Название: Re: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: panAlexey от Октябрь 26, 2011, 12:04 Я в свое время тупо сохранял ID, рефрешал и делал перебор, пока не найду нужную запись. Ты имеешь ввиду что ID - это ключ который однозначно характеризует документ/элемент в таблице?А перебор чего? запроса или индексов модели? Название: Re: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: Пантер от Октябрь 26, 2011, 12:14 Ты имеешь ввиду что ID - это ключ который однозначно характеризует документ/элемент в таблице? Да.А перебор чего? запроса или индексов модели? Индексов модели.Название: Re: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: panAlexey от Октябрь 26, 2011, 12:51 Ты имеешь ввиду что ID - это ключ который однозначно характеризует документ/элемент в таблице? Да.А перебор чего? запроса или индексов модели? Индексов модели.ПС. Но это на вечер. )) Сейчас быдлокодинг на 1С )))) Название: Re: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: Странник от Октябрь 26, 2011, 13:08 Можно пример перебора индексов? у меня поиск строки по значению data в столбце column реализован так:ПС. Но это на вечер. )) Сейчас быдлокодинг на 1С )))) Код: QModelIndexList matchIndexes = model->match(model->index(0, column), Qt::DisplayRole, data, 1, Qt::MatchExactly); Название: Re: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: panAlexey от Октябрь 26, 2011, 13:15 Можно пример перебора индексов? у меня поиск строки по значению data в столбце column реализован так:ПС. Но это на вечер. )) Сейчас быдлокодинг на 1С )))) Код: QModelIndexList matchIndexes = model->match(model->index(0, column), Qt::DisplayRole, data, 1, Qt::MatchExactly); Плохо, что слабовато с инглишем для ассистанта. Не особо плохо, но зачастую нехватет )) Название: Re: QSqlQueryModel + QTableView + insert into | UPDATe обновление данных. Отправлено: panAlexey от Октябрь 29, 2011, 20:37 Можно пример перебора индексов? у меня поиск строки по значению data в столбце column реализован так:ПС. Но это на вечер. )) Сейчас быдлокодинг на 1С )))) Код: QModelIndexList matchIndexes = model->match(model->index(0, column), Qt::DisplayRole, data, 1, Qt::MatchExactly); таким поиском какая-то фигня получается... в самой функции match смотрет сравнивается 2 QVariant со значениями v 1 (qlonglong) и value 10 (int) и конструкция if (v==value) дает true O_o....... |