当我尝试使用exe连接到同一文件夹中的数据库文件时,会发生奇怪的事情。不显示错误消息,并且未加载数据库中的数据。
sdb = QSqlDatabase::addDatabase("QSQLITE");
sdb.setDatabaseName("lang.sqlite");
if (!sdb.open())
{
qDebug() << sdb.lastError().text();
QMessageBox msgBox;
msgBox.setIcon(QMessageBox::Critical);
msgBox.setText(sdb.lastError().text());
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.exec();
}
但是,如果我将数据库移动到另一个文件夹 - 一切正常。
sdb = QSqlDatabase::addDatabase("QSQLITE");
sdb.setDatabaseName("db\\lang.sqlite");
if (!sdb.open())
{
qDebug() << sdb.lastError().text();
QMessageBox msgBox;
msgBox.setIcon(QMessageBox::Critical);
msgBox.setText(sdb.lastError().text());
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.exec();
}
任何想法?
答案 0 :(得分:3)
试试这个:
sdb.setDatabaseName(qApp->applicationDirPath()
+ QDir::separator()
+ "lang.sqlite" );