2012-05-11 14 views
2

exeで同じフォルダ内のデータベースファイルに接続しようとすると、何か変なことが起こります。エラーメッセージは表示されず、データベースのデータはロードされません。QSqlDatabaseと.sqliteファイルに接続

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(); 
} 

いずれかのアイデアはありますか?

答えて

2

これを試してみてください:

sdb.setDatabaseName(qApp->applicationDirPath() 
        + QDir::separator() 
        + "lang.sqlite"); 
関連する問題