Обновление таблицы через QTableView. |
Здравствуйте, гость ( Вход | Регистрация )
Обновление таблицы через QTableView. |
User_3 |
12.2.2010, 13:16
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 27.8.2009 Пользователь №: 1027 Спасибо сказали: 0 раз(а) Репутация: 0 |
Извините что поднял избитую тему, но никак не могу понять - каким же образом можно сохранять изменения в полях таблицы, путём редактирования QTableView?
Например есть такая таблица:
Ну и дальше она размещается на виджете, и вот хочу изменить значения полей в таблице редактированием ячейки в QTableView, но они меняются только в QTableView, а в самой бд всё остаётся неизменно. |
|
|
Litkevich Yuriy |
12.2.2010, 13:49
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Например, так
|
|
|
User_3 |
12.2.2010, 15:25
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 27.8.2009 Пользователь №: 1027 Спасибо сказали: 0 раз(а) Репутация: 0 |
Извините, я неправильно выразился.
Мне нужно изменить именно значения в ячейках таблицы. Т.е. с клавиатуры ввести новое значение прямо в ячейку, предварительно дважды щёлкнув по ней курсором. |
|
|
Litkevich Yuriy |
12.2.2010, 16:55
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
MoPDoBoPoT |
12.2.2010, 17:11
Сообщение
#5
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
вот хочу изменить значения полей в таблице редактированием ячейки в QTableView, но они меняются только в QTableView, а в самой бд всё остаётся неизменно Я думаю ключевая фраза эта? Тогда нужно вызывать метод submitAll(), потому как у тебя стоит политика редактирования QSqlTableModel::OnManualSubmit. Почитай в ассистенте про эти вещи получше. |
|
|
Litkevich Yuriy |
12.2.2010, 17:16
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
User_3 |
16.2.2010, 17:43
Сообщение
#7
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 27.8.2009 Пользователь №: 1027 Спасибо сказали: 0 раз(а) Репутация: 0 |
Например, так За ссылку спасибо, но видимо у меня проблемы с кодировкой в комментах: CODE Версия программы: 1.0 * Framework: Qt 4.3.2 * Компилятор: GCC (mingw-gcc rev4.3.2) * Дата начала: 20.03.2008 * Последнее обновление: 25.03.2008 * Автор: Литкевич Юрий Р˜РІР°РЅРѕРІРёС‡ * Support E-mail: lit-uriy-A-yandex.ru * Лицензия: GNU GPLv2 * * Описание: Не подскажешь как решить? |
|
|
Litkevich Yuriy |
16.2.2010, 19:04
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
User_3 |
17.2.2010, 14:22
Сообщение
#9
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 27.8.2009 Пользователь №: 1027 Спасибо сказали: 0 раз(а) Репутация: 0 |
Как я понял мне нужна эта часть : CODE void TableEditor::SlotSubmit() { model->database().transaction(); if (model->submitAll()) { model->database().commit(); model->select(); // Опять применить и отмена не активны BtnDis(); } else { model->database().rollback(); QMessageBox::critical(this, tr("Ошибка"), tr("Сообщение БД:\r\n %1") .arg(model->lastError().databaseText())); } Т.е. здесь при нажатии кнопки submit, данные которые я изменил через ячейки таблицы изменятся в бд? Но возникают ошибки обращения к неинициализированной области памяти и "Using unsupported buffertype: -1 (parameter: 1)". А разве нет более простого способа изменения данных в ячейках? |
|
|
MoPDoBoPoT |
17.2.2010, 14:48
Сообщение
#10
|
Участник Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: 9 |
А разве нет более простого способа изменения данных в ячейках? Я же намекал, что так нужно делать при выбранной политики редактирования (QSqlTableModel::OnManualSubmit), но существуют и другие. |
|
|
Текстовая версия | Сейчас: 22.1.2025, 13:43 |