Russian Qt Forum

Qt => Базы данных => Тема начата: phill13 от Май 29, 2010, 16:57



Название: Проблема с редактированием таблиц в tableView
Отправлено: phill13 от Май 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);

Извеняюсь, если тема уже подымалась.


Название: Re: Проблема с редактированием таблиц в tableView
Отправлено: shirushizo от Май 29, 2010, 21:50
Установить делегата неплохо было бы
void QAbstractItemView::setItemDelegate ( QAbstractItemDelegate * delegate )
или
void QAbstractItemView::setItemDelegateForColumn ( int column, QAbstractItemDelegate * delegate )
или
void QAbstractItemView::setItemDelegateForRow ( int row, QAbstractItemDelegate * delegate )


Название: Re: Проблема с редактированием таблиц в tableView
Отправлено: phill13 от Май 29, 2010, 22:10
А по подробней можно, а то совсем с делегатами не дружу. Как бы это выглядело применимо к моему коду?
И вопрос остается открытым, редактирование не происходит только из за отсутствия делегатов?


Название: Re: Проблема с редактированием таблиц в tableView
Отправлено: lit-uriy от Май 29, 2010, 22:21
делегат тут точно не причём.
Сама таблица отображается в представлении корректно?
Не является ли "c_curator" представлением?


Название: Re: Проблема с редактированием таблиц в tableView
Отправлено: phill13 от Май 29, 2010, 22:28
Все отображается коректно.
Даже  больше она работала нормально, но при переносе на другой компьютер базы и программы(перенос базы выполняется экспортом в phpmyadmin СУДБ mysql). Заново компиля начинаются такие глюки причем со всеми таблицами.



Название: Re: Проблема с редактированием таблиц в tableView
Отправлено: crossly от Май 31, 2010, 14:04
sql самой таблицы посмотреть можно??


Название: Re: Проблема с редактированием таблиц в tableView
Отправлено: trenkinan от Июнь 01, 2010, 13:04
Попробуй использовать
Код
C++ (Qt)
   model->setEditStrategy(QSqlTableModel::OnRowChange);
ну и интересно было бы посмотреть на саму таблицу SQL


Название: Re: Проблема с редактированием таблиц в tableView
Отправлено: phill13 от Июнь 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
);


Название: Re: Проблема с редактированием таблиц в tableView
Отправлено: crossly от Июнь 02, 2010, 12:37
я бы для Not null добавил значения по умолчанию .... по крайней мере при использовании OnFieldChange