关于QSqlDatabase::addDatabase的一个运行时错误

来源:互联网 发布:海牙国际军事法庭 知乎 编辑:程序博客网 时间:2024/05/17 23:20

 

这是一个在开发过程中不会出现的问题,但是当你发布程序后,将程序安装在别的机器,在运行时会出现的错误。
错误如下:
QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:
QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
can not open database!

原因是由于程序中将添加的数据库赋值给了静态的变量。
相关的函数是:
QSqlDatabase QSqlDatabase::addDatabase(const QString &type, const QString &connectionName = QLatin1String(defaultConnection)) [static]

 

使用中出现了如下的程序结构:

// dbWriter.h#ifndef DBWRITER_H#define DBWRITER_H#include <QObject>#include <QtSql>class DbWriter : public QObject{    Q_OBJECTpublic:    static QSqlDatabase db;};#endif// dbWriter.cpp#include "dbWriter.h"QSqlDatabase DbWriter::db = QSqlDatabase::addDatabase("QSQLITE", "db_w");// use.cppDbWriter::db.setDatabaseName("./xxx.db");


 

 

原创粉丝点击