QSqlTAbleModel+QTableView, добавление данных в базу |
Здравствуйте, гость ( Вход | Регистрация )
QSqlTAbleModel+QTableView, добавление данных в базу |
Гость_iris_* |
1.10.2009, 12:52
Сообщение
#1
|
Гости |
Изменяю данные в QTAbleView. Когда пытаюсь занести измененные данные в базу, ничего не заносится
функция
выходит по rollback(); подскажите, пожалуйста, в чем тут может быть дело.
Причина редактирования: Используй тэг code
|
|
|
Гость_IRIS_* |
1.10.2009, 15:18
Сообщение
#2
|
Гости |
все разобралась. надо было обязательно выводить ключевое поле. А можно сделать как-нибудь так чтобы часть полей была редактируема, а часть нет?
|
|
|
ViGOur |
1.10.2009, 15:30
Сообщение
#3
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Как я понимаю для этого нужно снять флаг Qt::ItemIsEditable у QModelIndex.
|
|
|
Litkevich Yuriy |
1.10.2009, 16:59
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Гость_iris_* |
1.10.2009, 17:21
Сообщение
#5
|
Гости |
надо было обязательно выводить ключевое поле. ты имеешь ввиду такую ситуацию:* Первичный ключ (ПК) не отображается в представлении, но есть в таблице БД * При редактировании добавляются новые строки, но таблица в БД не имеет тригера создающего ПК так? да |
|
|
Litkevich Yuriy |
1.10.2009, 19:58
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
лучше тригер добавить в БД. Тогда проблем никаких не будет.
Либо, если предыдущее невозможно, воспользуйся одним из сигналов предоставляемых QAbstractItemModel, например: void QAbstractItemModel::rowsAboutToBeInserted ( const QModelIndex & parent, int start, int end ) [signal] В слоте, с которым ты соеденишь его создавай ПК и сохраняй в БД, т.е. тригер реализушь в программе. |
|
|
Текстовая версия | Сейчас: 6.2.2025, 0:30 |