私のアプリケーションでは、QSqlDatabase を使用して情報を保存しています。次のコマンドで正常にビルドしました(でもエラーはありませんverbose=3
):
macdeployqt AppName.app/ -dmg -qmldir=~/dev/AppName/qml
その前に、ポートを使用してmysql55を正常にインストールしました
sudo port install mysql55
アプリケーションを実行しようとしてもクラッシュはしませんが、データベースへのアクセスに関連することもありません。
これは、データベースなどを開くための私のコードです:
#include <QSqlQuery>
#include <QSqlDriver>
const QString DATABASE_NAME = "com.company.program.db";
MyClass::MyClass(QObject *parent) : QObject(parent) {
mDB = QSqlDatabase::addDatabase("QSQLITE");
#ifdef Q_OS_LINUX
QString path(QDir::home().path());
path.append(QDir::separator()).append(DATABASE_NAME);
path = QDir::toNativeSeparators(path);
mDB.setDatabaseName(path); // NOTE: We have to store database file into user home folder in Linux
#else
mDB.setDatabaseName(DATABASE_NAME); // NOTE: File exists in the application private folder, in Symbian Qt implementation
#endif
bool notOpened = !mDB.open();
QMessageBox::critical(0, "MyClass", mDB.lastError().databaseText()); // always is 'out of memory'
if (notOpened) emit failedToOpen();
else {
// some initialization
}
}
MyClass::~MyClass() {
mDB.close();
}
誰かが同じ問題を経験したことがありますか/これに対する修正はありますか?
注: Mac OS X 10.9 と Qt5.3.2 を使用しています。