QT中如何驱动链接数据库MYSql

来源:互联网 发布:php在线提交系统 编辑:程序博客网 时间:2024/04/23 20:07


1.下载安装MYSql数据库,安装时候必须安装INCLUDE和LIB文件夹,并且把这两个文件夹放到C盘根目录C:\mysql\下;

2.下载QT源码,并在QT源码目录D:\qt-everywhere-opensource-src-5.0.1\qtbase\src\plugins\sqldrivers\ mysql 下编译mysql.pro文件;

     编译步骤:   a从libmysql.lib生成libmysql.a文件
                                   >>C:
                                   >>cd mysql\lib\opt
                                   >>reimp -d libmysql.lib (生成 libmysql.def文件)
                                   >>dlltool -k -d libmysql.def -l libmysql.a (生成 libmysql.a文件)

                                  (把生成的.a文件复制到D:\qt-everywhere-opensource-src-5.0.1\qtbase\src\plugins\sqldrivers\ mysql文件夹下

                              b:  用记事本打开D:\qt-everywhere-opensource-src-5.0.1\qtbase\src\plugins\sqldrivers\ mysql\mysql.pro文件,在第二行加入: INCLUDEPATH += "C:/mysql/include" LIBS += "C:/mysql/lib/opt/libmysql.lib" 并保存.


                              c:生成Qt下的mysql驱动:(在QT相应的命令行工具中运行如下命令)
                                    >>cd \
                                    >>cd qt\src\plugins\sqldrivers\mysql
                                    >>QMAKE -o Makefile "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\Llib\opt\libmysql.a" mysql.pro
                                    >>mingw32-make

 3:在D:\qt-everywhere-opensource-src-5.0.1\qtbase\plugins\sqldrivers目录下生成驱动QT所需要的文件

  1. qsqlmysql4.dll   
  1. libqsqlmysql4.a  
  1. qsqlmysqld4.dll   
  1. libqsqlmysqld4.a    最后把 
    1. qsqlmysqld4.dll   
    1. libqsqlmysqld4.a 这两个文件复制到QT工具的安装目录的D:\Qt\5.0.1\mingw47_32\plugins\sqldrivers下,写如下代码测试:

  1.  
  2.   4:测试代码
  3.                                                              QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");                            
                                                                 qDebug() << "ODBC driver valid?" << db.isValid();                                 
                                                                 db.setDatabaseName("mytest");                                                     
                                                                 db.setHostName("localhost");                                                      
                                                                 db.setUserName("root");                                                           
                                                                 db.setPassword("19881014");                                                       
                                                                 db.setPort(3306);                                                                 
                                                                 if(db.open())                                                                     
                                                                  {                                                                                 
                                                                       QSqlQuery query;                                                              
                                                                       //新建student表                                                                    
                                                                      query.exec("create table student (id int primary key, name text,course int)");
                                                                                      
                                                                      query.prepare("insert into student values (?, ?, ?)");                        
                                                                                      
                                                                      QVariantList id;                                                              
                                                                       id << 1 << 2 << 3;                                                            
                                                                      query.addBindValue(id);                                                       
                                                                                      
                                                                      QVariantList name1;                                                           
                                                                      name1 << "Harald" << "Boris" << "Trond" << QVariant(QVariant::String);        
                                                                      query.addBindValue(name1);                                                    
                                                                                      
                                                                      QVariantList course;                                                          
                                                                      course<< 1 << 1 << 2;                                                         
                                                                      query.addBindValue(course);                                                   
                                                                                      
                                                                      if (!query.execBatch())                                                       
                                                                      {                                                                             
                                                                            qDebug() << "error";                                                      
                                                                      };                                                                           
                                                                                  


原创粉丝点击