Reputation: 111
Something strange happens when I try to connect to the database file in the same folder with exe. Error message is not displayed and data from the database not load.
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();
}
But if I move the database to another folder - everything works fine.
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();
}
Any Ideas?
Upvotes: 4
Views: 10219
Reputation: 4786
Try this:
sdb.setDatabaseName(qApp->applicationDirPath()
+ QDir::separator()
+ "lang.sqlite" );
Upvotes: 4