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);
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM