crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QSqlTAbleModel+QTableView
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 1.10.2009, 19:58
  лучше тригер добавить в БД. Тогда проблем никаких не будет.

Либо, если предыдущее невозможно, воспользуйся одним из сигналов предоставляемых QAbstractItemModel, например:
void QAbstractItemModel::rowsAboutToBeInserted ( const QModelIndex & parent, int start, int end ) [signal]
В слоте, с которым ты соеденишь его создавай ПК и сохраняй в БД, т.е. тригер реализушь в программе.
iris Дата 1.10.2009, 17:21
 
Цитата(Litkevich Yuriy @ 1.10.2009, 16:59) *
Цитата(Гость_IRIS_* @ 1.10.2009, 19:18) *
надо было обязательно выводить ключевое поле.
ты имеешь ввиду такую ситуацию:
* Первичный ключ (ПК) не отображается в представлении, но есть в таблице БД
* При редактировании добавляются новые строки, но таблица в БД не имеет тригера создающего ПК

так?


да
Litkevich Yuriy Дата 1.10.2009, 16:59
 
Цитата(Гость_IRIS_* @ 1.10.2009, 19:18) *
надо было обязательно выводить ключевое поле.
ты имеешь ввиду такую ситуацию:
* Первичный ключ (ПК) не отображается в представлении, но есть в таблице БД
* При редактировании добавляются новые строки, но таблица в БД не имеет тригера создающего ПК

так?
ViGOur Дата 1.10.2009, 15:30
  Как я понимаю для этого нужно снять флаг Qt::ItemIsEditable у QModelIndex.
IRIS Дата 1.10.2009, 15:18
  все разобралась. надо было обязательно выводить ключевое поле. А можно сделать как-нибудь так чтобы часть полей была редактируема, а часть нет?
iris Дата 1.10.2009, 12:52
  Изменяю данные в QTAbleView. Когда пытаюсь занести измененные данные в базу, ничего не заносится
функция
void Window::insert(){
    model->database().transaction();
    if (model->submitAll()){
        model->database().commit();
    } else {
        model->database().rollback();
    }
}

выходит по rollback();
подскажите, пожалуйста, в чем тут может быть дело.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 13.7.2025, 23:32