没有绝对路径就无法访问数据库

时间:2018-03-06 13:55:44

标签: c++ qt

我这样打开我的数据库并且它可以正常工作,但它显然是一条绝对的道路,除了我的电脑之外,它在其他任何地方都无法工作

mydb = QSqlDatabase::addDatabase("QSQLITE");
mydb.setDatabaseName("D:/QT/Matura/baza/lboards.db");

我无法访问数据库

if(mydb.open())
    qDebug() << "CONNECTED";
else
    qDebug() << "NOT CONNECTED";

如果我将路径设置为

,则返回true
 mydb.setDatabaseName("lboards.db");

但是我在数据库中运行的select语句什么也没有返回,但是如果我把完整的路径放在那里就行了。

1 个答案:

答案 0 :(得分:1)

我写的代码是这样的,供您参考:

QString dbPath = QCoreApplication::applicationDirPath();
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName( dbPath + "sqlite.db" );
if (!db.open())
{
    qDebug() << "do not find db file";
    return false;
}

并确保sqlite.dbyourapp.exe

的路径相同

在我的工作空间中,路径为:...\qt_project\build-yourapp-Desktop_Qt_5_8_0_MinGW_32bit-Debug\

你的可能不一样,只需稍微调整一下。

希望有所帮助。

相关问题