Qt 如导入SQL文件

Qt可以使用QSqlDatabase类连接和操作数据库。导入SQL文件的一种方法是将其读入字符串,然后使用该字符串执行SQL语句。

以下是一个示例代码:

#include <QFile>
#include <QTextStream>
#include <QDebug>
#include <QSqlQuery>

// 执行 SQL 文件
bool executeSqlFile(QSqlDatabase db, const QString &filePath)
{
    QFile file(filePath);
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
        qWarning() << "Failed to open SQL file: " << filePath;
        return false;
    }

    QTextStream in(&file);
    in.setCodec("UTF-8");

    QStringList queries = in.readAll().split(';', QString::SkipEmptyParts);

    for (QString query : queries) {
        QSqlQuery q(db);
        if (!q.exec(query.trimmed())) {
            qWarning() << "Failed to execute query: " << q.lastError();
            return false;
        }
    }

    return true;
}

该函数从文件中读取SQL语句,并将其分割为单独的查询。然后,它使用QSqlQuery类在数据库中执行每个查询。如果任何查询失败,则返回false。

您可以按以下方式调用此函数:

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("password");
db.setDatabaseName("database_name");

if (!db.open()) {
  // 处理连接错误
}

if (!executeSqlFile(db, "/path/to/sql/file.sql")) {
  // 处理 SQL 错误
}

此代码假定您已经正确设置了数据库连接参数。执行SQL文件时,请确保指定正确的文件路径。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,C++设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

猜你喜欢

转载自blog.csdn.net/m0_73443478/article/details/131111278