«QSqlDatabase» не был объявлен - PullRequest
0 голосов
/ 16 ноября 2009

Я очень новичок в использовании QT4. Я пытаюсь использовать sql в уже работающем приложении. Однако, когда я пытаюсь скомпилировать, я получаю эту ошибку: "QSqlDatabase" не был объявлен в этой области. "

Вот соответствующий код:

#include <QtSql>
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

 db.setHostName("bigblue");
 db.setDatabaseName("flightdb");
 db.setUserName("acarlson");
 db.setPassword("1uTbSbAs");
 bool ok = db.open();

Я добавил QT + = sql в мой файл .pro.

Код выше буквально скопирован отсюда: http://qt.nokia.com/doc/4.5/qtsql.html

Есть идеи, что я делаю не так?

Ответы [ 3 ]

5 голосов
/ 16 ноября 2009

Хорошо, проблема была с моим .pro-файлом. Это файл, который дал мне ошибку:

TEMPLATE = app
QT += sql
QT = gui core
CONFIG += qt debug warn_on console
DESTDIR = bin
OBJECTS_DIR = build
MOC_DIR = build
UI_DIR = build
FORMS = ui/mainwindow.ui ui/dialog.ui ui/dialog_con.ui ui/add_ingredient.ui
HEADERS = src/mainwindowimpl.h \
src/dialogimpl.h \
src/utils.h \
SOURCES = src/mainwindowimpl.cpp \
src/main.cpp \
src/dialogimpl.cpp \
src/utils.cpp \

Проблема была в том, что ядро ​​QT = gui перекрывало мой QT + = sql. переместив QT + = sql в bo прямо над HEADERS, он скомпилировался просто отлично. Спасибо за помощь.

2 голосов
/ 16 ноября 2009

Компилятор не может найти заголовок QtSql и поэтому не знает о QSqlDatabase. Заголовок находится в подкаталоге QtSql, поэтому, возможно, вам нужно явно указать это в строке включения:

#include <QtSql/QtSql>

В качестве альтернативы вы должны убедиться, что каталог QtSql находится в пути поиска включаемого файла вашего компилятора.

0 голосов
/ 16 ноября 2009

Я думаю, вам просто нужно

#include <QSqlDatabase>

, поскольку оно не включается автоматически QtSql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...