#include #include #include #include #include #include #include #include namespace { const int TEST_ROWS = 3; const int TEST_COLS = 4; const char* pTestData[TEST_ROWS][TEST_COLS] = { { NULL, "B", "C", "D" }, { "E", "F", "G", "H" }, { NULL, "J", "K", "L" } }; void printModel (const QAbstractItemModel* const model) { const int numRows = model->rowCount(); for (int i=0; idata(model->index(i,0)).toString() << "," << model->data(model->index(i,1)).toString() << "," << model->data(model->index(i,2)).toString() << "," << model->data(model->index(i,3)).toString(); qDebug() << "-----"; } } int main (int _argc, char** const _pArgv) { QTemporaryFile tempFile; tempFile.open(); QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "TEMP_CONN"); db.setDatabaseName(tempFile.fileName()); db.open(); const QString createTableQuery( "CREATE TABLE Test\n" "(\n" "Col1 TEXT,\n" "Col2 TEXT,\n" "Col3 TEXT,\n" "Col4 TEXT\n" ")" ); QSqlQuery query(db); query.exec(createTableQuery); std::auto_ptr pSqlTableModel(new QSqlTableModel(0, db)); pSqlTableModel->setTable("Test"); pSqlTableModel->setEditStrategy(QSqlTableModel::OnManualSubmit); pSqlTableModel->select(); for (int row=0; rowinsertRow(row, QModelIndex()); for (int col=0; colsetData( pSqlTableModel->index(row, col), QString(pTestData[row][col]), Qt::EditRole ); } pSqlTableModel->submitAll(); ::printModel(pSqlTableModel.get()); qDebug() << pSqlTableModel->removeRows(1, 1); qDebug() << pSqlTableModel->submitAll(); ::printModel(pSqlTableModel.get()); qDebug() << pSqlTableModel->removeRows(0, 1); qDebug() << pSqlTableModel->submitAll(); ::printModel(pSqlTableModel.get()); db.close(); tempFile.close(); QApplication a(_argc, _pArgv); return a.exec(); }