[Solved] Problem with including QtSql
-
wrote on 12 Oct 2010, 15:02 last edited by
hi
here is my problem. I am trying to connect with db. i already did that in other example with the help of some users here on this forum which works perfectly fine.
here is code which does not work
@
#include <QApplication>
#include <QtSql>int main(int argc, char *argv[])
{
QApplication a(argc, argv);QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("testTwo"); db.setUserName("root"); db.setPassword("xxxxxx"); bool ok = db.open(); return 0;
}
@it produces this error
@
QtSql: No such file or directory main.cpp:2
‘QSqlDatabase’ was not declared in this scope main.cpp:8
expected ‘;’ before ‘db’ main.cpp:8
‘db’ was not declared in this scope main.cpp:9
@while the previous example i did is working fine. I include the same QtSql file and working but in this example it is giving this error. I also added this line
QT += sql
to .pro file
whats is the problem here? please help -
wrote on 12 Oct 2010, 15:05 last edited by
maybe #include <QSqlDatabase> ?
-
wrote on 12 Oct 2010, 15:12 last edited by
same error after replacing QtSql with QSqlDatabase
-
wrote on 12 Oct 2010, 15:39 last edited by
error is QSqlDatabase No such file or directory?
-
wrote on 12 Oct 2010, 15:49 last edited by
yes it is the error QSqlDatabase No such file or directory
-
wrote on 12 Oct 2010, 16:08 last edited by
Maybe is a linker problem, are you sure you have correctly installed qt?
And use correctly library? In this case i think you want build for 4.7 desktop right? -
wrote on 12 Oct 2010, 16:14 last edited by
yes right but my other example is working fine
here it is
@
#include <QApplication>
#include <QtSql>int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("testTwo"); db.setUserName("root"); db.setPassword("xxxxxx"); bool ok = db.open(); //qDebug() << db.lastError().text(); //qDebug() << ok; QSqlQuery query(db); query.exec("SELECT * FROM testTable"); while(query.next()) { QString firstName = query.value(0).toString(); QString secondName = query.value(1).toString(); //int id = query.value(2).toInt(); qDebug() << "First Name: " << firstName << "Last Name:" << secondName << "\n"; //qDebug() << db.lastError(); } return 0;
}
@
-
wrote on 12 Oct 2010, 16:19 last edited by
your pro files are similar? try clean build?
-
wrote on 12 Oct 2010, 16:20 last edited by
you mean i should close my qt creator and open again write the code from start?
[quote author="chetankjain" date="1286900346"]your pro files are similar? try clean build?[/quote] -
wrote on 12 Oct 2010, 16:26 last edited by
I meant, you have one project with working Qt sql code, and another failing to find the includes, so just compare the .pro files and see if they are similar.
Next, in Qt Creator, go to Build menu and select "Clean Project" option and then rebuild ... sometimes this could help ...
-
wrote on 12 Oct 2010, 16:32 last edited by
i also did that clean project from build menu but still the same problem
i think both pro files are different
this .pro is for that example which is working
@
#-------------------------------------------------Project created by QtCreator 2010-10-10T13:05:29
#-------------------------------------------------
QT += core gui
QT += sql
TARGET = dbExample
TEMPLATE = appSOURCES += main.cpp
db.cppHEADERS += db.h
connection.hFORMS += db.ui
@
and this is the one which is not working
@
#-------------------------------------------------Project created by QtCreator 2010-10-12T01:37:23
#-------------------------------------------------
QT += core gui
QT += sql;TARGET = untitled
TEMPLATE = appSOURCES += main.cpp
mainwindow.cppHEADERS += mainwindow.h
FORMS += mainwindow.ui
@
-
wrote on 12 Oct 2010, 16:40 last edited by
The second one has a semi colon after SQL, try removing that.
You could use this directly
@
QT += core gui sql
@
better to have one definition instead of multiple, just easier to maintain -
wrote on 12 Oct 2010, 16:44 last edited by
yup your are right its working now
-
wrote on 12 Oct 2010, 17:39 last edited by
good to hear that
-
wrote on 12 Oct 2010, 20:46 last edited by
Yes, but maybe you have to read some qt doc :P
-
This post is deleted!