【问题标题】:SQLite database with Qt fails for Release executable带有 Qt 的 SQLite 数据库无法发布可执行文件
【发布时间】:2022-01-01 01:14:47
【问题描述】:

我在调试版本(在 Qt Creator 中加载)和发布版本中都有此代码。使用 Qt Creator 时,数据库似乎可以毫无问题地打开,但在运行发布可执行文件时会失败。我已经将一些丢失的 .dll 文件从 Qt bin 文件夹复制到了发布文件夹,以使应用程序在没有“丢失 .dll”错误的情况下加载,但似乎 QSql 可能缺少其他一些先决条件?

#ifndef LOGIN_H
#define LOGIN_H

#include <QMainWindow>
#include <QtSql>
#include <QtDebug>
#include <QFileInfo>

QT_BEGIN_NAMESPACE
namespace Ui { class login; }
QT_END_NAMESPACE

class login : public QMainWindow
{
    Q_OBJECT

public:
    QSqlDatabase EPMS_db;

    void connClose()
    {
        EPMS_db.close();
        EPMS_db.removeDatabase(QSqlDatabase::defaultConnection);
    }
    bool connOpen()
    {
        EPMS_db = QSqlDatabase::addDatabase("QSQLITE");
        EPMS_db.setDatabaseName("C:/SQLite/EPMS_1.db");

        if (!EPMS_db.open()) {
            qDebug()<<("Database failed to connect");
            return false;
        }
        else {
            qDebug()<<("Database connected successfully");
            return true;
        }
    }

public:
    login(QWidget *parent = nullptr);
    ~login();

private slots:
    void on_pushButton_clicked();

private:
    Ui::login *ui;
};
#endif // LOGIN_H

【问题讨论】:

  • 您的 login.cpp 看起来如何?

标签: c++ sqlite qt


【解决方案1】:

已解决:将 plugins/sqldrivers 文件夹复制到包含发布可执行程序的同一文件夹中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 2020-02-18
    • 1970-01-01
    相关资源
    最近更新 更多