zoukankan      html  css  js  c++  java
  • qt中执行 sql文件的方法

    由于qt中没有原生的执行sql文件的方法。因此我们需要根据sql文件中的流的特点,将其分解成一个个语句单独执行。

    1.首先通过Qfile读取sql文件

    2.将sql文件中的内容通过“;”进行拆解

    3.对拆解后的内容,依次进行执行exec语句。

    int excute_sql_file(const char * sql_file_path)
    {
        int iRet = 0;
        QFile qfile(sql_file_path);
        if (!qfile.exists()) {
            return -1;
        }
        if (!qfile.open(QIODevice::ReadOnly | QIODevice::Text)) {
            return -1;
        }
        QTextStream in(&qfile);
        in.setCodec("UTF-8");
        QString qstr_file_data = in.readAll();
        QSqlQuery qsql(*m_database);
        QStringList qstrlist_sql =  qstr_file_data.split(";");
        for (int i = 0; i < qstrlist_sql.size() - 1; i++) {
            QString qstr_sql_part = qstrlist_sql.at(i).toUtf8();
            bool sql_result = qsql.exec(qstr_sql_part);
            if (!sql_result) {
                QSqlError sql_error = qsql.lastError();
                //std::cout << sql_error.text().toStdString() << std::endl;
                //std::cout << sql_error.number() << std::endl;
                iRet = -1;
                break;
            }
        }
    
        return iRet;
    }
  • 相关阅读:
    L2-1 功夫传人 (25分)
    7-11 家庭房产(25 分)
    7-11 玩转二叉树 (25分)
    7-10 排座位 (25分)
    7-12 最长对称子串 (25分)
    7-10 树的遍历 (25分)
    STL
    Max Gcd
    水果
    Rails
  • 原文地址:https://www.cnblogs.com/zhangdewang/p/9476090.html
Copyright © 2011-2022 走看看