2013-05-30 4 views
0

Делая свои первые шаги в Qt Creator и потерял уже:Qt: Не удается подключиться к БД SQLite

К основным, в противном случае без изменений исходного приложения с помощью мастера Qt, я добавил sql в файл проекта

QT  += core gui sql 

и строки ниже до mainwindow.cpp.

#include <QSqlDatabase> 

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
db.setDatabaseName("/home/vaettchen/testSQL/myDB.sqlite"); 
bool db_ok = db.open(); 

Согласно различным источникам на Web-сайте Qt, и здесь, на SO, я ожидал, что это сделает это. Но я получаю ошибку компилятора

../testSQL/mainwindow.cpp:20:1: error: 'db' does not name a type 

, где линия 20 представляет линию db.setDataBaseName(). Я попытался выяснить через Google, что это значит и что можно сделать, но комментарии, которые я нашел, были не очень полезными.

Использование Qt Creator 2.7.0 (Qt 4.8.4) на Linux 3.5

ответ

1

Оказывается, что компилятор пытается интерпретировать «децибел» в качестве типа, что приводит меня к мысли, что линии 19-21 являются не в функции.

#include "mainwindow.h"  
#include "ui_mainwindow.h" 
#include <QSqlDatabase> 

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 

    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 
    db.setDatabaseName("/home/vaettchen/testSQL/myDB.sqlite"); 
    bool db_ok = db.open(); 
} 
+0

Компиляция без ошибок. Qt, вероятно, слишком требовательна для меня, но я над этим работаю, и ваш комментарий «не в функции» мне очень помог - спасибо! – vaettchen

Смежные вопросы