Qt——使用SQLite时数据库文件路径

under 数据库  Qt  tag     Published on June 4th , 2020 at 06:01 am

前言

今天遇到一个很灵异的问题,使用Qt连接SQLite数据库时可以正常连上:

但是进行查询等操作的时候,总是显示mismatch。查了一堆资料后发现是db文件存放路径的问题。

解决方案

需要把db文件放在.exe同级目录下:

在连接数据库时,路径为文件名

#define SQLITE_PATH         "stockEmulation.db"
bool connDataBase::OpenDatabase()
{
    if (QSqlDatabase::contains("qt_sql_default_connection"))
    {
        db = QSqlDatabase::database("qt_sql_default_connection");
    }
    else
    {
        db = QSqlDatabase::addDatabase("QSQLITE");
        qDebug()<<"SQLite driver?"<<db.isValid();
        db.setDatabaseName(SQLITE_PATH);
    }
    
    //打开失败
    if (!db.open()) 
    {
        qDebug()<<db.lastError().text();
        QMessageBox::critical(0, QObject::tr("Database error"), db.lastError().text());
        return false;                                            
    }
    else
    {
        qDebug()<<"database open success!";
        this -> query = QSqlQuery(db);
        return true;
    }
}


本文由simyng创作, 采用知识共享署名4.0 国际许可协议进行许可,转载前请务必署名
  文章最后更新时间为:June 3rd , 2020 at 10:01 pm