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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QSqlTableModel::insertRow()  (Прочитано 7881 раз)
bigirbis
Гость
« : Август 21, 2007, 09:17 »

Народ, вот столкнулся с такой тупейшей проблемой: добавление новой записи программно в QSqlTableModel.

Так работает:
Код:
QSqlRecord rec = tableModel->record();
rec.setValue( 1, "qwe" );
tableModel->insertRecord( tableModel->rowCount(), rec );
tableModel->submitAll();

А так - нет:
Код:
QSqlRecord rec = tableModel->record();
tableModel->insertRecord( tableModel->rowCount(), rec );
tableModel->submitAll();

Вопрос состоит в том, как грамотно добавить строку c дефолтовыми параметрами через QSqlTableModel.
Заранее спасибо!

PS: Qt 4.2.2
Записан
linuxoid
Гость
« Ответ #1 : Август 21, 2007, 13:35 »

Всё элементарно:

QSqlTableModel *model = qobject_cast<QSqlTableModel *>(tableView->model());
     QModelIndex insertIndex = tableView->currentIndex();
     int row = insertIndex.row() == -1 ? 0 : insertIndex.row();
     model->insertRow(row);
     insertIndex = model->index(row, 0);
     tableView->setCurrentIndex(insertIndex);
     tableView->edit(insertIndex);
Записан
linuxoid
Гость
« Ответ #2 : Август 21, 2007, 13:37 »

А теперь ты мне помоги!как вставить грамотно новую сроку ячеек в QSqlQueryModel
Записан
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #3 : Август 21, 2007, 13:49 »

QSqlQueryModel  вроде как result of query... И она не сохраняет данные в базе.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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