Ошибка выполнения Qt-запроса - PullRequest
0 голосов
/ 26 марта 2012
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;
}

База данных Показывает Сообщение об ошибке базы данных и следующее в консоли.

Database error :  QSqlError(-1, "Driver not loaded", "Driver not loaded") 

1 Ответ

1 голос
/ 06 апреля 2012

Я получил частичное решение.Создание запроса как локального объекта с передачей db его конструктору решит проблему.Как

QSqlQuery query(db);
...