|
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 <QtGui> #include <QtSql> 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(); }
|