您的位置:首页 > 数据库

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

2013-10-16 18:14 447 查看
这是一个在开发过程中不会出现的问题,但是当你发布程序后,将程序安装在别的机器,在运行时会出现的错误。

错误如下:

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_OBJECT
public:
static QSqlDatabase db;
};

#endif

// dbWriter.cpp

#include "dbWriter.h"

QSqlDatabase DbWriter::db = QSqlDatabase::addDatabase("QSQLITE", "db_w");

// use.cpp
DbWriter::db.setDatabaseName("./xxx.db");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐