zoukankan      html  css  js  c++  java
  • 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和进行查询...

                                        





  • 相关阅读:
    第三百六十九天 how can I 坚持
    第三百六十八天 how can I 坚持
    第三百六十四、五、六、七天 how can I 坚持
    POJ 1663:Number Steps
    POJ 2676:Sudoku 数独
    POJ 2488:A Knight's Journey 深搜入门之走马观花
    POJ 3050:Hopscotch
    51nod 1419:最小公倍数挑战
    POJ 1011:Sticks 经典搜索
    POJ 2362:Square 觉得这才算深度搜索
  • 原文地址:https://www.cnblogs.com/aniuer/p/2726990.html
Copyright © 2011-2022 走看看