QTableView для изменений, добавлений, удалений в базе данных |
Здравствуйте, гость ( Вход | Регистрация )
QTableView для изменений, добавлений, удалений в базе данных |
DenisKh001 |
16.6.2011, 20:50
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 16.6.2011 Пользователь №: 2752 Спасибо сказали: 0 раз(а) Репутация: 0 |
Есть QTableview и соединенная с ней QSqlTableModel (или QSQLRelationModel) - все работает, все обновляется. Есть ли готовое решение для добавления и удаления данных в базе так как это обычно делается - выделил строчку удалил, в конце таблицы фокус ввода прыгает не на первую строчку, а создается пустая запись. Или все это надо писать руками отлавливая сигналы? Тогда какой сигнал отлавливать на удаление строчки, а какой в момент перехода с последней строки QTableview?
|
|
|
maint |
16.6.2011, 21:22
Сообщение
#2
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
Есть QTableview и соединенная с ней QSqlTableModel (или QSQLRelationModel) - все работает, все обновляется. Есть ли готовое решение для добавления и удаления данных в базе так как это обычно делается - выделил строчку удалил, в конце таблицы фокус ввода прыгает не на первую строчку, а создается пустая запись. Или все это надо писать руками отлавливая сигналы? Тогда какой сигнал отлавливать на удаление строчки, а какой в момент перехода с последней строки QTableview? я делал руками. По table->currentIndex вычислял текущую позицию. При удалении плясал от нее. Вставка - ухожу либо на конец, либо на начало, если сортировка по алфавиту |
|
|
xzz |
15.6.2012, 10:34
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 15.6.2012 Пользователь №: 3422 Спасибо сказали: 0 раз(а) Репутация: 0 |
Господа здравствуйте!!у меня есть небольшая проблема....а именно:с qt совсем недавно...думаю как бы изменять,добавлять,удалять данные в приложении,бд в postgres.....начал писать...выдает такую ошибку...:
QSqlRelationalTableModel *objectRelation = new QSqlRelationalTableModel(0); objectRelation->setTable("object"); objectRelation->setRelation(1, QSqlRelation("id_object","name")); objectRelation->select(); objectRelation->setEditStradegy (QSqlTableModel::OnManualSubmit); main.cpp(37) : error C2661: QSqlRelation::QSqlRelation: нет перегруженной функции, принимающей 2 аргументов main.cpp(39) : error C2039: setEditStradegy: не является членом "QSqlRelationalTableModel" и студия то русская(((( если есть примеры как проще можно сделать...очень буду благодарен!! и если не сложно,небольшой примерчик толковый... |
|
|
maint |
15.6.2012, 10:48
Сообщение
#4
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
синтаксическая ошибка в setRelation. Должно быть 3 аргумента. Таблица, индекс, поле. Примерчик краткий и понятный есть в инсталляционном пакете. В example - relationtablemodel и masterdetail |
|
|
xzz |
15.6.2012, 15:32
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 15.6.2012 Пользователь №: 3422 Спасибо сказали: 0 раз(а) Репутация: 0 |
а на пальцах можно))?немного хотя бы....либо исходник маленького проекта.....в одну таблицу
|
|
|
maint |
15.6.2012, 15:47
Сообщение
#6
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
а на пальцах можно))?немного хотя бы....либо исходник маленького проекта.....в одну таблицу я же писал, в одном пакете с Qt идут примеры. В Винде это папка example, так где установлено. В линухе в /usr/lib/qt4/example. Там ищем каталог sql. в каталоге два подкаталога, где есть эти замечательные примеры. Называются masterdetail и relationtablemodel. Очень просто и доступно написано. Как раз для обучения Сообщение отредактировал maint - 15.6.2012, 15:48 |
|
|
vankleef |
17.6.2012, 3:57
Сообщение
#7
|
Студент Группа: Участник Сообщений: 74 Регистрация: 21.10.2010 Пользователь №: 2134 Спасибо сказали: 9 раз(а) Репутация: 1 |
а на пальцах можно))?немного хотя бы....либо исходник маленького проекта.....в одну таблицу http://www.forum.crossplatform.ru/index.php?showtopic=6140 |
|
|
Mingun |
11.7.2012, 6:37
Сообщение
#8
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 28.9.2009 Пользователь №: 1122 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вот как я решил исходную задачу автора темы. Здесь код на Java, на C++ переписать не состовит труда. Сделано с помощью специальной прокси-модели, добавляющей в конец одну строчку и при установке данных в нее добавляющей новую строчку в конец исходной модели, а затем делегирующей ей установку данных.
|
|
|
Mingun |
22.10.2012, 11:18
Сообщение
#9
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 28.9.2009 Пользователь №: 1122 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вот окончательный вариант, в котором выправлены некоторые баги исходного.
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 2:49 |