View Full Version : QSqlTableModel
raphaelf
3rd March 2006, 14:22
Hi everybody,
I am searching examples how to use insertRow(); removeRow(); and updateRowInTable();
Can i find somewhere examples?
for display a table i havent problem. But how to construct and use insertRow(); removeRow(); and updateRowInTable();
QString table = ui.tabelle_le->text();
QSqlTableModel *model = new QSqlTableModel;
model->setTable(table);
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
ui.tableView->setModel(model);
ui.tableView->show();
If somebody have some finish examples why not :p
Thanks again :rolleyes:
wysota
3rd March 2006, 18:23
Hmm... what exactly you don't know? In case of SQL models, insertRow() does an INSERT call and removeRow() does a DELETE call. Guess what the third method does ;)
raphaelf
4th March 2006, 11:03
Hi wysota,
I know what should do insertRow(); removeRow(); and updateRowInTable(); ;)
But i dont know how to use it.
With this code i am able to view the values of my table:
QString table = ui.tabelle_le->text();
QSqlTableModel *model = new QSqlTableModel;
model->setTable(table);
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
ui.tableView->setModel(model);
ui.tableView->show();
And now i would like to insert a new Row or update a value or delete a Row.
And my problem is:
How to use:
bool QAbstractItemModel::insertRow ( int row, const QModelIndex & parent = QModelIndex() )
bool QAbstractItemModel::removeRow ( int row, const QModelIndex & parent = QModelIndex() )
I have not found any examples how to use it.
In the passt i use this for create a new row:
QSqlQuery insert("insert into.....");
insert.exec()..
..
I would like to use :
bool QAbstractItemModel::insertRow ( int row, const QModelIndex & parent = QModelIndex() )
bool QAbstractItemModel::removeRow ( int row, const QModelIndex & parent = QModelIndex() )
Can somebody show me how to use it?
wysota
4th March 2006, 11:51
model->insertRow(-1, QModelIndex());
model->setData(model->index(model->rowCount()-1, 0), "somedata");
But it's better to do it this way:
QSqlRecord rec = model->record();
rec.setValue("name", "John Doe");
rec.setValue("age", 18);
model->insertRecord(-1, rec);
raphaelf
4th March 2006, 12:35
Hi wysota
It works :p
Thanks to open my mind! I am allways happy when i have the possibility to stude some examples
For insert new Values:
QString table = ui.tabelle_le->text();
QSqlTableModel *model = new QSqlTableModel;
model->setTable(table);
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
QSqlRecord rec = model->record();
ui.tableView->setModel(model);
ui.tableView->show();
//I have auto increment at this table, so i dont have to give the new id
rec.setValue("status", "test");
model->insertRecord(-1, rec);
For Update a Value it works now like this:
QString table = ui.tabelle_le->text();
QSqlTableModel *model = new QSqlTableModel;
model->setTable(table);
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->select();
ui.tableView->setModel(model);
ui.tableView->show();
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.