void MemberDlg::deleteRecords() { QItemSelectionModel *select_mode=view->selectionModel(); QModelIndexList list = select_mode->selectedRows(); qDebug()<<"list:"<<list.size(); if(0 == list.count()) { QMessageBox::information(NULL,tr("删除记录"),tr("对不起,请选择至少一条要删除的记录!"), QMessageBox::Yes); return; } else { int ret=QMessageBox::information(NULL,tr("删除记录"),tr("您确定要删除该记录?"), QMessageBox::Yes,QMessageBox::No); if(ret==QMessageBox::No) return; QSqlTableModel tableModel; tableModel.setTable("Account"); for(int i=0; i<list.count();i++) { int MainID = model->data(model->index(list.at(i).row(),0)).toInt(); tableModel.setFilter(QString("FamilyMember = %1").arg(MainID)); tableModel.select(); tableModel.removeRows(0,tableModel.rowCount()); //先删除Account与该成员关联的记录 } model->removeRows(list.at(0).row(),list.count()); model->submitAll(); model->select(); } emit updateFamilyMember();//通知其他窗体更新 }
void Database::saveUnits(QString userName, QList<Unit> units) { QSqlTableModel model; model.setTable("user"); model.select(); QString saveName; for (int i=0; i<model.rowCount(); ++i) { QSqlRecord record = model.record(i); if (record.value("name").toString()==userName) { saveName=record.value("id").toString(); break; } } saveName.prepend("save"); model.setTable(saveName); int row=0, line=0; model.select(); model.removeRows(row, model.rowCount()); model.submitAll(); while(line<units.size()) { model.insertRows(row,1); model.setData(model.index(row,0), line+1); model.setData(model.index(row,1), units[line].imageFileName); model.setData(model.index(row,2), units[line].faceLeft); model.setData(model.index(row,3), units[line].vLocation); model.setData(model.index(row,4), units[line].hLocation); model.setData(model.index(row,5), units[line].hitPoints); model.setData(model.index(row,6), units[line].totalHitPoints); model.setData(model.index(row,7), units[line].actionTime); model.setData(model.index(row,8), units[line].actionRate); model.setData(model.index(row,9), units[line].movementRange); model.setData(model.index(row,10), units[line].attackRange); model.setData(model.index(row,11), units[line].attackPower); model.setData(model.index(row,12), units[line].status); model.setData(model.index(row,13), units[line].maskFileName); model.setData(model.index(row,14), units[line].team); model.setData(model.index(row,15), units[line].unitWorth); model.submitAll(); line++; } }
void MainPage::userLogout(){ qDebug()<<"userLogout..."; if(!isLogin()){ ToolUtil::ShowMessageBoxInfo("您还没有登录",this); return; } int result = ToolUtil::ShowMessageBoxQuesion("确定要退出登录吗?",this); if (1 == result) { //处理结束工作 QSqlTableModel *model = Dbconnect::getTbModel("remuser"); model->select(); model->removeRows(0,model->rowCount()); model->submit(); delete model; model = NULL; this->updateUi(""); Dbconnect::clearUser(); } }
void sql_intro_snippets() { { //! [26] QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("bigblue"); db.setDatabaseName("flightdb"); db.setUserName("acarlson"); db.setPassword("1uTbSbAs"); bool ok = db.open(); //! [26] Q_UNUSED(ok); } { //! [27] QSqlDatabase firstDB = QSqlDatabase::addDatabase("QMYSQL", "first"); QSqlDatabase secondDB = QSqlDatabase::addDatabase("QMYSQL", "second"); //! [27] } { //! [28] QSqlDatabase defaultDB = QSqlDatabase::database(); //! [28] //! [29] QSqlDatabase firstDB = QSqlDatabase::database("first"); //! [29] //! [30] QSqlDatabase secondDB = QSqlDatabase::database("second"); //! [30] } { // SELECT1 //! [31] QSqlQuery query; query.exec("SELECT name, salary FROM employee WHERE salary > 50000"); //! [31] //! [32] while (query.next()) { QString name = query.value(0).toString(); int salary = query.value(1).toInt(); qDebug() << name << salary; } //! [32] } { // FEATURE //! [33] QSqlQuery query; int numRows; query.exec("SELECT name, salary FROM employee WHERE salary > 50000"); QSqlDatabase defaultDB = QSqlDatabase::database(); if (defaultDB.driver()->hasFeature(QSqlDriver::QuerySize)) { numRows = query.size(); } else { // this can be very slow query.last(); numRows = query.at() + 1; } //! [33] } { // INSERT1 //! [34] QSqlQuery query; query.exec("INSERT INTO employee (id, name, salary) " "VALUES (1001, 'Thad Beaumont', 65000)"); //! [34] } { // NAMED BINDING //! [35] QSqlQuery query; query.prepare("INSERT INTO employee (id, name, salary) " "VALUES (:id, :name, :salary)"); query.bindValue(":id", 1001); query.bindValue(":name", "Thad Beaumont"); query.bindValue(":salary", 65000); query.exec(); //! [35] } { // POSITIONAL BINDING //! [36] QSqlQuery query; query.prepare("INSERT INTO employee (id, name, salary) " "VALUES (?, ?, ?)"); query.addBindValue(1001); query.addBindValue("Thad Beaumont"); query.addBindValue(65000); query.exec(); //! [36] } { // UPDATE1 //! [37] QSqlQuery query; query.exec("UPDATE employee SET salary = 70000 WHERE id = 1003"); //! [37] } { // DELETE1 //! [38] QSqlQuery query; query.exec("DELETE FROM employee WHERE id = 1007"); //! [38] } { // TRANSACTION //! [39] QSqlDatabase::database().transaction(); QSqlQuery query; query.exec("SELECT id FROM employee WHERE name = 'Torild Halvorsen'"); if (query.next()) { int employeeId = query.value(0).toInt(); query.exec("INSERT INTO project (id, name, ownerid) " "VALUES (201, 'Manhattan Project', " + QString::number(employeeId) + ')'); } QSqlDatabase::database().commit(); //! [39] } { // SQLQUERYMODEL1 //! [40] QSqlQueryModel model; model.setQuery("SELECT * FROM employee"); for (int i = 0; i < model.rowCount(); ++i) { int id = model.record(i).value("id").toInt(); QString name = model.record(i).value("name").toString(); qDebug() << id << name; } //! [40] } { // SQLTABLEMODEL1 //! [41] QSqlTableModel model; model.setTable("employee"); model.setFilter("salary > 50000"); model.setSort(2, Qt::DescendingOrder); model.select(); for (int i = 0; i < model.rowCount(); ++i) { QString name = model.record(i).value("name").toString(); int salary = model.record(i).value("salary").toInt(); qDebug() << name << salary; } //! [41] } { // SQLTABLEMODEL2 QSqlTableModel model; model.setTable("employee"); //! [42] for (int i = 0; i < model.rowCount(); ++i) { QSqlRecord record = model.record(i); double salary = record.value("salary").toInt(); salary *= 1.1; record.setValue("salary", salary); model.setRecord(i, record); } model.submitAll(); //! [42] // SQLTABLEMODEL3 int row = 1; int column = 2; //! [43] model.setData(model.index(row, column), 75000); model.submitAll(); //! [43] // SQLTABLEMODEL4 //! [44] model.insertRows(row, 1); model.setData(model.index(row, 0), 1013); model.setData(model.index(row, 1), "Peter Gordon"); model.setData(model.index(row, 2), 68500); model.submitAll(); //! [44] //! [45] model.removeRows(row, 5); //! [45] //! [46] model.submitAll(); //! [46] } }