Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
maint |
22.5.2010, 3:49
Сообщение
#11
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2
|
Цитата(Litkevich Yuriy @ 21.5.2010, 23:46) Link Цитата(maint @ 21.5.2010, 19:04) Link Как встать в модели на запись с ключом, ну скажем 30 а её может и не быть в модели в данный моменттогда получается, что пошаговый-интерактивный поиск в таблице с помощью моделей невозможен. Хреновастый инструмент получается, ущербный вдогонку, функция интерактивного-визуального поиска в довольно часто используется в работе с базами данных. Т.е побоку SQL остается обычный перебор. Даже без seek как в DBASE IV. Прогресс однако |
|
|
|
|
Litkevich Yuriy |
22.5.2010, 5:05
Сообщение
#12
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(maint @ 22.5.2010, 7:49) Link Хреновастый инструмент получается, ущербный модель - не курсор, свою задачу она выполняет на 5.
|
|
|
|
|
maint |
22.5.2010, 5:19
Сообщение
#13
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2
|
Цитата(Litkevich Yuriy @ 22.5.2010, 11:05) Link Цитата(maint @ 22.5.2010, 7:49) Link Хреновастый инструмент получается, ущербный модель - не курсор, свою задачу она выполняет на 5.курсор, как таковой изжит, в QT4 в пользу моделей, которые не могут осуществлять его функции. Так что, не вижу хорошего метода создания интерактивного поиска. Невозможность сделать то, что делают давно и многие |
|
|
|
|
Litkevich Yuriy |
22.5.2010, 8:33
Сообщение
#14
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
по идее модели для SQL поддерживают операцию fetch, т.е. если перемешаться по модели в стиле представления (надо посмотреть как оно это делает), то модель будет читать данные, которые ещё не читала.
А вообще для работы в стиле курсора есть класс QSqlQuery |
|
|
|
|
maint |
22.5.2010, 9:00
Сообщение
#15
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2
|
Цитата(Litkevich Yuriy @ 22.5.2010, 14:33) Link по идее модели для SQL поддерживают операцию fetch, т.е. если перемешаться по модели в стиле представления (надо посмотреть как оно это делает), то модель будет читать данные, которые ещё не читала. А вообще для работы в стиле курсора есть класс QSqlQuery про query - все понятно. Но с начала темы идет задача поиска. Есть допустим отображение некого справочника (QTableView + QSqlTableModel) имеющего поле "имя", в котором надо искать вхождение заданной строки. Допустим, мы сделали запрос и нашли запись с ключем, удовлетворяющим условие. Теперь неплохо было бы в отображаемой модели встать на эту запись по ключу. Не вижу способов реализации. Только перебор по списку. А это грустно. |
|
|
|
|
Litkevich Yuriy |
22.5.2010, 11:56
Сообщение
#16
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(maint @ 22.5.2010, 13:00) Link сделали запрос и нашли запись с ключем, удовлетворяющим условие. запрос делали в БД и получили первичный ключ и по первичному ключу нужно сделать текущей строку в представлении?
|
|
|
|
|
maint |
22.5.2010, 12:07
Сообщение
#17
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2
|
Цитата(Litkevich Yuriy @ 22.5.2010, 17:56) Link Цитата(maint @ 22.5.2010, 13:00) Link сделали запрос и нашли запись с ключем, удовлетворяющим условие. запрос делали в БД и получили первичный ключ и по первичному ключу нужно сделать текущей строку в представлении?совершенно верно |
|
|
|
|
Litkevich Yuriy |
22.5.2010, 13:12
Сообщение
#18
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
maint, Ну это довольно просто, нужно воспользоваться моделью выделения (QItemSelectionModel).
Получаешь её у представления (table->selectionModel()). Затем у модели данных просишь найти в заданной колонке нужное значение (QAbstractItemModel::match) В качестве начального индекса передаёшь: QModelIndex(0, столбец_с_ПК, QModelIndex) Т.к. этот столбец - первичный ключ, то значения в нём уникальны, следовательно первый же результат и будет индекс соответствующий строке с данным ПК, его передаёшь в модель выделения. П.С. метод QAbstractItemModel::match можно использовать и для поиска по модели, не забираясь в БД П.П.С. Link, если рельтат поиска пустой, то нужно пользоваться методом fetch |
|
|
|
|
maint |
22.5.2010, 14:58
Сообщение
#19
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2
|
Цитата(Litkevich Yuriy @ 22.5.2010, 19:12) Link maint, Ну это довольно просто, нужно воспользоваться моделью выделения (QItemSelectionModel). Получаешь её у представления (table->selectionModel()). Затем у модели данных просишь найти в заданной колонке нужное значение (QAbstractItemModel::match) В качестве начального индекса передаёшь: QModelIndex(0, столбец_с_ПК, QModelIndex) Т.к. этот столбец - первичный ключ, то значения в нём уникальны, следовательно первый же результат и будет индекс соответствующий строке с данным ПК, его передаёшь в модель выделения. П.С. метод QAbstractItemModel::match можно использовать и для поиска по модели, не забираясь в БД П.П.С. Link, если рельтат поиска пустой, то нужно пользоваться методом fetch спасибо, буду пробовать |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 22.12.2025, 19:23 |