crossplatform.ru

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

> QSqlRelationTableModel->submitAll() ошибка No Fields to update"
mishabard
  опции профиля:
сообщение 6.7.2011, 15:47
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 31
Регистрация: 13.6.2011
Из: Киев
Пользователь №: 2741

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




Репутация:   0  


Добрый день! Вот код в кратце. Выбрал все самое нужно. Все работает, данные обновляются или добовляются,
но в дебаге выскакиевает ошибка: No Fields to update".

В программе используется следующая модель:
QSqlRelationTableModel * model;
QTableView *view;

Создаю диалоговое окно для обновления или добавления записей в таблицу. Впринципе все сделал на основе примера из Qt


вот конструктор диалогвого окна, для добавления новой записи в QSqlRelationTableModel
передаю в него указатель view на TableView

{
.....
QAbstractItemModel * model;[size="1"][/size]

    model = view->model();
    mapper = new QDataWidgetMapper(this);
    mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
    mapper->setModel(model);
  
    mapper->addMapping(pdataCrt, ((QSqlRelationalTableModel*)model)->fieldIndex("datacrt"));
    mapper->addMapping(pSumma, ((QSqlRelationalTableModel*)model)->fieldIndex("summa"));
    .....
    mapper->setCurrentModelIndex(view->currentIndex());

  
        int row = mapper->currentIndex();
        model->insertRow(row);
        mapper->setCurrentIndex(row);
   .......
        pSumma->clear();
        pdataCrt->setDate(QDate::currentDate());
        pSumma->setFocus();

....
}

Если пользователь нажимает ОК в диалоговом окне то делаю
void Carta::accept()
{

    mapper->submit()

    QDialog::accept();
}

Вот процедура, которая вызывает диалоговое окно
void MainWindow::addRect()
{
    pCarta = new Carta(kassaView,-1);
    if (pCarta->exec()==QDialog::Accepted)
    {
        if (!model->submit());
        {
    
          qDebug()<<"Ошибка"+model->lastError().text();[color="#FF0000"]ошибка: No Fields to update". [/color]
        }
    }
    else
        qDebug()<<"Отмена добавления записи";

    delete pCarta;
    pCarta=0;


}

Вроде все добавляет в базу(хотя через раз вроде), но выскакивает ошибка, и не позволяет обробатывать действительно проблемы со вствкой записей.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 19.1.2025, 11:53