crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> изменение данных в БД
Гость_iris_*
сообщение 10.5.2010, 19:55
Сообщение #1





Гости








    


Создаю
QSqlTableModel * model = new QSqlTableModel();

Делаю, чтобы данные заносились в базу сразу после изменения в таблице
model->setEditStrategy(QSqlTableModel::OnFieldChange);

Они почему-то не всегда изменяются. Например одну и ту же ячейку нельзя изменить 2 раза подряд. Так же нельзя изменять данные из одной и той же колонки подряд. Но разрешает изменить данные в одной ячейке, потом в какой-то ячейке другой колонки, а потом опять в первой ячейке.
Почему это может быть?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.5.2010, 20:29
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Гость_iris_* @ 10.5.2010, 23:55) *
Например одну и ту же ячейку нельзя изменить
что значит "нельзя"?

Цитата(Гость_iris_* @ 10.5.2010, 23:55) *
Но разрешает изменить
Что значит "разрешает"?

Пр политике редактирования QSqlTableModel::OnFieldChange Данные будут сохранены в БД при смене столбца (щелчок мыши на другом столбце или выбирая ячейку с помощью клавиатуры)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_iris_*
сообщение 25.5.2010, 22:17
Сообщение #3





Гости








    


Цитата(Litkevich Yuriy @ 10.5.2010, 20:29) *
Цитата(Гость_iris_* @ 10.5.2010, 23:55) *
Например одну и ту же ячейку нельзя изменить
что значит "нельзя"?

Цитата(Гость_iris_* @ 10.5.2010, 23:55) *
Но разрешает изменить
Что значит "разрешает"?

Пр политике редактирования QSqlTableModel::OnFieldChange Данные будут сохранены в БД при смене столбца (щелчок мыши на другом столбце или выбирая ячейку с помощью клавиатуры)

Я изменяю значение в ячейки один раз. Все работает (данные добавляются в базу данных). Потом пытаюсь изменить данные опять в той же ячейке, не получается.Но если изменить данные в ячейке другого столбца, а потом опять попробовать изменить в первой ячейке, то они изменятся. Не понимаю почему так?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kibsoft
  опции профиля:
сообщение 25.5.2010, 23:00
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 180
Регистрация: 21.7.2009
Из: Самара
Пользователь №: 928

Спасибо сказали: 14 раз(а)




Репутация:   2  


Цитата
Не понимаю почему так?

Тебе ответили:
Цитата
Пр политике редактирования QSqlTableModel::OnFieldChange Данные будут сохранены в БД при смене столбца (щелчок мыши на другом столбце или выбирая ячейку с помощью клавиатуры)

Как вариант, можешь поставить OnManualSubmit и приконнектить
void QAbstractItemModel::dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight )
к
bool QSqlTableModel::submitAll ()   [slot]
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.4.2024, 12:27