Qt QTableModel联表显示

要求:项目要求数据库数据以表格形式显示出来;而且数据涉及两个表

笔记:①做过几个测试发现QSqlTableModel使用数据库并连接QTableView显示速度最快

     ②使用QSqlTableModel发现不能声明两个表格;只有最后一个setTable()生效 

方法:①创建视图或者临时表方式来配合QSqlTableModel(我是用的临时表)

视图可以被看成是虚拟表或存储查询。
临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。

      ②QSqlTableModel加载视图

//判断并删除临时表
    if( !SqlOperation::SqlOperation_Oper("DROP TABLE IF EXISTS VibralistTemp;"))return;
    if( SqlOperation::SqlOperation_Oper(str_vibra) )//创建临时表
    //str_vibra就是内联两个表的sql语句
    //加载数据库数据
    {
        qDebug()<<"创建临时表";
        QSqlDatabase db = SqlConnectionPool::openConnection();
        modelList_Vibra = new QSqlTableModel(this,db);
        modelList_Vibra->setTable("VibralistTemp");  //指定模型要关联的表(employee)
        modelList_Vibra->setEditStrategy(QSqlTableModel::OnManualSubmit);//手动提交
        modelList_Vibra->select();  //查询表格数据
        ui->tableView_2->setModel(modelList_Vibra);
        ui->tableView_2->horizontalHeader()->setResizeMode(QHeaderView::Stretch);//表格平均显示
        ui->tableView_2->show();
        SqlConnectionPool::closeConnection(db);
    }
原文地址:https://www.cnblogs.com/shuoguoleilei/p/13305983.html