0
bool MainWindow::initDb() {
db = QSqlDatabase::addDatabase("QSQLITE"); // defined on class header as QSqldatabase db
db.setDatabaseName("data.db");
if (!db.open()) {
QMessageBox::critical(this,
tr("Error"),
tr("Could not save data. Database problem."));
return false;
}
query.prepare("create table if not exists snippet (id int primary key, title varchar(255) not null, tags varchar(255), snippet text)");
if (!query.exec()) { // error
QMessageBox::critical(this,
tr("Database error"),
tr("Could not setup database"));
qDebug() << "Database error : " << query.lastError();
return false;
}
query.clear();
return true;
}
データベースが表示されますデータベースエラーメッセージボックスと以下がコンソールに表示されます。Qtクエリ実行エラー
Database error : QSqlError(-1, "Driver not loaded", "Driver not loaded")
このプラットフォームはどのプラットフォームですか? sqliteとsqlite qtプラグインがインストールされていますか? –
Linux ubuntu 11.10、SQLIteがインストールされています。クエリをローカルオブジェクトとして使用してもうまく動作します。ちょうど**クエリ**がクラスプロパティに問題が発生したとき。 – Dewsworld
クラスメンバの場合は、デフォルトのコンストラクタが使用されます。http://qt-project.org/doc/qt-4.8/qsqlquery.html#QSqlQuery-2適切なデータベースを渡すことをインスタンス化してみてください。 –