QT 使用SQLite 出现Driver not loaded Driver not loaded报错

问题描述:

QSqlDatabase db;
    if(QSqlDatabase::contains("sql_default_connection"))
    {
        //根据数据库默认连接名称得到连接
        db = QSqlDatabase::database("sql_default_connection");
    }
    else
    {
        db = QSqlDatabase::addDatabase("QSQLITE");//添加数据库,得到该数据库的默认连接
        db.setDatabaseName("mp3listdatabase.db");
    }
 
  
    //2 打开数据库,打开标识
    if(!db.open())
    {
        QMessageBox::critical(0, QObject::tr("Open Data error"), db.lastError().text());
    }

程序运行到这里就出现弹窗:Driver not loaded Driver not loaded

问题原因:

SQLite数据库路径未加入环境变量中

解决步骤:

第一步:搜索qsqlite.dll文件,一般这个文件在安装qt时,就默认下载到了QT的安装目录。

第二步:复制此文件的路径。

第三步:在代码中显式的设置。如下。

QCoreApplication::addLibraryPath("D:/Qt/Qt5.14.2/5.14.2/mingw73_32/plugins");

其他:

对于此问题,还可将路径设置在电脑环境变量中,但是我这里设置没有效果,但是在cmd中,能够识别出来路径,有可能是Qt 加载插件路径的机制未正确识别环境变量(后面想办法解决),最有效的方式就是在代码中显式的指出SQLite的路径。

你可能感兴趣的:(qt,sqlite,数据库)