QT连接MySQL记录

QT连接MySQL花费了不少时间,现在理一下头绪:

重点参考了http://www.linuxso.com/architecture/37897.html

这个帖子参考了http://www.seppemagiels.com/blog/create-mysql-driver-qt-

1.安装Qtsource.

    位置如图,这个source开始是没有的,着实让我纠结了很长时间,怎么QT这个包就不能打全一点呢?非要哥在线下。。。

 
 

2.建立目录。

    将MySQL中MySQL Server 5.5目录下的include和lib文件夹放到C的根目录下,这样做方便操作,而且避免目录中出现空格。

 

3.编译驱动。

    在目录C:\QtSDK\QtSources\4.8.0\src\plugins\sqldrivers\mysql\下输入

qmake "INCLUDEPATH+=c:\\qtmysql\\include" "LIBS+=c:\\mysql\\lib\\libmysql.lib" -o Makefile mysql.pro 

然后mingw32-make

    再qmake "INCLUDEPATH+=c:\\qtmysql\\include" "LIBS+=c:\\mysql\\lib\\libmysql.lib" -o Makefile mysql.pro "CONFIG+=release"

然后mingw32-make

4.移动文件。

    在C:\QtSDK\QtSources\4.80\src\plugins\sqldrivers\mysql\debug下找到libqsqlmysqld4.a and qsqlmysqld4.dll并复制到这个路径下:

    C:\QtSDK\Desktop\Qt\4.8.0\mingw\plugins\sqldrivers

在C:\QtSDK\QtSources\4.7.3\src\plugins\sqldrivers\mysql\release下找到  qsqlmysql4.dll 和libqsqlmysql4.a 并复制到这个路径下:

    C:\QtSDK\Desktop\Qt\4.7.3\mingw\plugins\sqldrivers

从mysql\lib下找到libmysql.dll并复制到c:\windows下

5.测试

    在新建project时,在项目包含的.pro文件中添加:QT += sql    //此处sql必须小

建立一个Qt UI应用,代码如下

1.  #include <QtGui/QApplication>
2.  #include<QtSql>
3.  #include<QLabel>
4.  #include<QSqlDatabase>
5.  bool createConnection()
6.  {
7.      QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
8.      db.setHostName("localhost");
9.      db.setDatabaseName("radar");
10.     db.setUserName("root");
11.     db.setPassword("********");
12.     if (!db.open())
13.         return false;
14.     db.close();
15.     return true;
16. }
17. int main(int argc, char *argv[])
18. {
19.     QApplication a(argc, argv);
20.     QLabel* label = new QLabel;
21.     label->setWindowTitle("QT Database");
22.     if (createConnection())
23.         label->setText("connection success...");
24.     else
25.         label->setText("connection failed...");
26.     label->show();
27.     
28.     return a.exec();
29. }

6.结果

    到最后了又在MySQL的服务配置上耽误时间了。以下是一直要搞出来的结果,明天把这一套搞到工作电脑上,下一步工作是连接Oracle和进行查询...

                                    





原文地址:https://www.cnblogs.com/aniuer/p/2726990.html