Russian Qt Forum
Ноябрь 01, 2024, 15:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlTableModel, setRecord()  (Прочитано 1400 раз)
Izi
Гость
« : Январь 29, 2016, 18:23 »

Доброго времени суток.
Помогите разобраться с проблемой.
Есть таблица sql
Код
SQL
CREATE TABLE tablex(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(50) NOT NULL);
Создаю модель которая работает с этой таблицей.
Код
C++ (Qt)
...
srand(QDateTime::currentMSecsSinceEpoch());
 
model=new QSqlTableModel(this);
   model->setTable("tablex");
   model->select();
   model->setEditStrategy(QSqlTableModel::OnFieldChange);
   view=new QTableView();
   view->setModel(model);
...
 
По нажатии на кнопку выполняется следующий слот
Код
C++ (Qt)
void MainWindow::on_pushButton_clicked()
{
 
QSqlRecord rec=model->record(0);
 
   int i=rand() %1500;
 
   QString str=QString::number(i);
   rec.setValue("name",str);
   qDebug()<<model->setRecord(0,rec);
   qDebug()<<model->lastError().text();
}
 

Проблема в следующем: при первом нажатии на кнопку, запись устанавливается в модель и также добавляется в базу данных, т.е. в таблицу. При повторном нажатии на кнопку, запись устанавливается в модель, но уже не добавляется базу данных(таблицу), т.е. не сохраняется там. Вот что выводит qDebug:
Код
C++ (Qt)
true            //1 click
" "              //1 click
false                                   //2 click
" No Fields to update"            //2 click
false                                   //3 click
" No Fields to update"            //3 click
false                                   //4 click
" No Fields to update"            //4 click

В чем может быть проблема ? Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.1 секунд. Запросов: 20.