Russian Qt Forum
Ноябрь 24, 2024, 12:16
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
>
Проблема с редактированием таблиц в tableView
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Проблема с редактированием таблиц в tableView (Прочитано 5180 раз)
phill13
Гость
Проблема с редактированием таблиц в tableView
«
:
Май 29, 2010, 16:57 »
Добрый день , пожалуйста подскажите.
Я создаю модель и переношу в tableView и собственно включая опцию setEditStrategy. Аномалии начинаются когда начинаю редактировать базу в tableView, она почему-то не сохраняет изменения тоесть остается такой какой была. В чем может быть косяк?
QSqlTableModel *model = new QSqlTableModel;
model->setTable("c_curator");
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->select();
model->setHeaderData(1, Qt::Horizontal, QObject::tr("Фамилия"));
model->setHeaderData(2, Qt::Horizontal, QObject::tr("Имя"));
model->setHeaderData(3, Qt::Horizontal, QObject::tr("Отчество"));
model->setHeaderData(4, Qt::Horizontal, QObject::tr("Телефон"));
ui->tableView->setModel(model);
ui->tableView->setColumnHidden(0,true);
ui->tableView->setAlternatingRowColors(true);
Извеняюсь, если тема уже подымалась.
«
Последнее редактирование: Май 29, 2010, 18:20 от phill13
»
Записан
shirushizo
Гость
Re: Проблема с редактированием таблиц в tableView
«
Ответ #1 :
Май 29, 2010, 21:50 »
Установить делегата неплохо было бы
void QAbstractItemView::setItemDelegate ( QAbstractItemDelegate * delegate )
или
void QAbstractItemView::setItemDelegateForColumn ( int column, QAbstractItemDelegate * delegate )
или
void QAbstractItemView::setItemDelegateForRow ( int row, QAbstractItemDelegate * delegate )
Записан
phill13
Гость
Re: Проблема с редактированием таблиц в tableView
«
Ответ #2 :
Май 29, 2010, 22:10 »
А по подробней можно, а то совсем с делегатами не дружу. Как бы это выглядело применимо к моему коду?
И вопрос остается открытым, редактирование не происходит только из за отсутствия делегатов?
Записан
lit-uriy
Джедай : наставник для всех
Offline
Сообщений: 3880
Re: Проблема с редактированием таблиц в tableView
«
Ответ #3 :
Май 29, 2010, 22:21 »
делегат тут точно не причём.
Сама таблица отображается в представлении корректно?
Не является ли "c_curator" представлением?
«
Последнее редактирование: Май 29, 2010, 22:23 от lit-uriy
»
Записан
Юра.
phill13
Гость
Re: Проблема с редактированием таблиц в tableView
«
Ответ #4 :
Май 29, 2010, 22:28 »
Все отображается коректно.
Даже больше она работала нормально, но при переносе на другой компьютер базы и программы(перенос базы выполняется экспортом в phpmyadmin СУДБ mysql). Заново компиля начинаются такие глюки причем со всеми таблицами.
«
Последнее редактирование: Май 29, 2010, 22:49 от phill13
»
Записан
crossly
Гость
Re: Проблема с редактированием таблиц в tableView
«
Ответ #5 :
Май 31, 2010, 14:04 »
sql самой таблицы посмотреть можно??
Записан
trenkinan
Гость
Re: Проблема с редактированием таблиц в tableView
«
Ответ #6 :
Июнь 01, 2010, 13:04 »
Попробуй использовать
Код
C++ (Qt)
model
->
setEditStrategy
(
QSqlTableModel
::
OnRowChange
)
;
ну и интересно было бы посмотреть на саму таблицу SQL
Записан
phill13
Гость
Re: Проблема с редактированием таблиц в tableView
«
Ответ #7 :
Июнь 01, 2010, 20:01 »
Сделал тоже самое на sqlite, все работает стабильно, никаких отклонений ненаблюдаю.
Kod_curator - ключ
Surname
Name
Patronymic
Phone
CREATE TABLE [student_book] (
[Kod_curator] VARCHAR(50) NOT NULL PRIMARY KEY,
[Surname] VARCHAR(50) NOT NULL,
[Name] VARCHAR(50) NOT NULL,
[Patronymic] VARCHAR(50) NOT NULL,
[Phone] VARCHAR(50) NOT NULL
);
«
Последнее редактирование: Июнь 02, 2010, 10:27 от phill13
»
Записан
crossly
Гость
Re: Проблема с редактированием таблиц в tableView
«
Ответ #8 :
Июнь 02, 2010, 12:37 »
я бы для Not null добавил значения по умолчанию .... по крайней мере при использовании OnFieldChange
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...