- 论坛徽章:
- 0
|
I wrote a program to test that how to connect to mysql with qt4,but I got the error message as follows when I compile it:
error: QtSql: No such file or directory
There are two method to solve this problem.
1.After execute qmake -project ,edit .pro file and add QT variable definition.
QT += sql
2.edit qmake configuration file,append QT variable definition
Just find the line like this:
QT += core gui network
change it :
QT += core gui network sql
A example demonstrates how to connect mysql with qt
//test.cpp
#include
#include
int main(int argc,char **argv)
{
QApplication app(argc,argv);
QTextEdit textEdit;
textEdit.resize(300,300);
textEdit.show();
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("example");
db.setUserName("creatory");
db.setPassword("");
bool ok=db.open();
if(ok)
{
textEdit.setText("connect ok");
QSqlQuery query;
if(query.exec("select * from employee"))
{
int numRows=0;
if(db.driver()->hasFeature(QSqlDriver::QuerySize))
numRows=query.size();
else
{
query.last();
numRows=query.at()+1;
}
QString id,name;
textEdit.append("========");
textEdit.append(QString::fromLocal8Bit("id | Name"));
while(query.next())
{
id=query.value(0).toString();
name=QString::fromLocal8Bit(query.value(1).toByteArray());
QString result=id+" "+name;
textEdit.append(result);
}
textEdit.append(QString("Totally %1 rows").arg(numRows));
}
}
else
{
textEdit.setText("error");
textEdit.append("can't open database");
textEdit.append("Reason:"+db.lastError().databaseText());
}
return app.exec();
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/56374/showart_687507.html |
|