Qt编译mysql以及创建表后进行导入操作

摘要:
鉴于许多学生总是无法用Qt编译myql。目的:Qt5.2版本号从未由MySQL驱动。因此,有必要编译MySQL数据库驱动程序。只有在编译完成后,Qt才能加载它。您可以检查下部驱动器文件夹中是否有两个文件(qsqlmysql.dll和libqsqlmysql4.a)。它们将在成功编译后可用。此时,您会发现编码后仍然找不到mysql驱动程序。有一个libmysql。dll文件,将其复制到Qt启动文件夹。请注意,其中包含SQL模块。现在可以执行以下操作。下一步是在关键时导入数据表。创建数据库;运行import命令。
       鉴于很多同学对Qt编译myql总是不能成功。出现各种问题,今天特此写出本教程,希望可以帮到须要的同学。
       首先,须要明确编译的目的和原理。

       目的:Qt 5.2版本号曾经都是不带mysql驱动的。所以须要进行编译mysql数据库驱动,仅仅有编译完毕后才干被Qt载入上。假设你安装的是Qt5.2以后版本号的,那就不须要了,由于在后来的版本号中,Qt官方添加这一模块。

       能够在Qt的安装插件文件夹下查看自己的驱动是否已经存在。

比如我的在文件夹:

C:Qt4.8.2pluginssqldrivers。能够看到当前的数据库驱动

Qt编译mysql以及创建表后进行导入操作第1张

一般须要两个即可了。

       原理:先看命令:qmake "INCLUDEPATH+=C:mysqlinclude" "LIBS+=C:mysqlliblibmysql.lib" mysql.pro

       解释:qmake---是Qt中国的一种编译命令,在linux下编程时常常会用到make命令。详情能够百度;INCLUDEPATH----后面的路径是数据库中"include"和"lib"的文件夹。

为什么要将这两个文件复制一份考到其它盘?那是由于mysql在安装的时候默认安装路径中有空格,这在编译过程中是无法通过的,不信的同学能够试一下,不行的话在考到其它盘里面;最后面的mysql.pro---这个是Qt的project文件,每一个Qtproject建立后都会生成一个以.pro结尾的文件,以后打开Qtproject的时候就双击你要打开的.pro结尾的哪个文件。整个project就打开了。

       可能我上面的解释也没有解释清楚大概就是哪个意思。

       以下说说详细的过程:

细心的同学就会发现,qmake.自己编译时会出现这个问题:

'qmake' 不是内部或外部命令,也不是可执行的程序或批处理文件

      原因:没有给Qt配置环境变量      

      解决的方法找到Qt的安装文件夹,我的文件夹在这儿:

Qt编译mysql以及创建表后进行导入操作第2张

找到这个文件夹下的这个东西,看见了吧qmake

Qt编译mysql以及创建表后进行导入操作第3张

找不到的话能够这样做:单击桌面Qt程序右键,打开文件路径:

Qt编译mysql以及创建表后进行导入操作第4张

右击打开我的电脑----点击属性---高级系统设置-----环境变量----找到path项---编辑

Qt编译mysql以及创建表后进行导入操作第5张  Qt编译mysql以及创建表后进行导入操作第6张Qt编译mysql以及创建表后进行导入操作第7张

Qt编译mysql以及创建表后进行导入操作第8张Qt编译mysql以及创建表后进行导入操作第9张

至此,其它的几个文件夹页这样配置。在此就不再反复了。

当然最简单最直接的是,不用配置。

直接用Qt自带的command进行编译。打开開始菜单,找到Qt comman窗口。

比方我的是这个:

Qt编译mysql以及创建表后进行导入操作第10张    Qt编译mysql以及创建表后进行导入操作第11张

      进入到Qt的源代码文件夹下的插件文件夹--驱动文件夹---数据库文件夹。注意这个编译的是源代码。然后输入開始介绍的哪一行文件夹---按回车。

之后非常多同学都说没有反应,那就对了,这一步的目的是为了下一步编译做准备,会生成makefile文件。

       由于用的是mingw编译器,所以用mingw32-make命令编译,假设你用的是vs的,那就用nmake编译。

       直接输入命令mingw32-make----回车。

假设没有错误。这个过程大概须要几十秒钟。接着进行安装:输入命令:mingw32-make install.能够将生成的插件考入相应Qt的文件夹。

你能够查看下驱动文件夹师是否存在qsqlmysql.dll和libqsqlmysql4.a这两个文件,一般编译成功后就会有的。

        此时编敲代码会发现,还是没有发现mysql驱动。

缺少引导文件。在考一个文件

就是之前你复制的那两个文件。在lib下有个libmysql.dll文件

Qt编译mysql以及创建表后进行导入操作第12张

将其拷贝到Qt的启动文件夹。跟前面打开方法一样,在桌面鼠标右击Qt的图标,打开文件位置,然后粘贴进去进行。

        至此。mysql编译任务完毕。

       那怎么知道自己的配置是否成功了呢,最简单的就是写个简单的程序检測下。

      建立一个QtGui Qpplicationproject。注意包括sql模块(假设没有包括,建完project后能够自project中加入,不用操心)。一下是一个简单的測试程序:

须要加入的头文件:#include<QSqlDatabase>   #include<QDebug>

    qDebug() << "Available drivers:";

    QStringList drivers = QSqlDatabase::drivers();

    foreach(QString driver, drivers)
        qDebug() << "	 "<< driver;

    qDebug() << "End";
把上面的程序写到main函数中就可以。

若是配置成功,则在窗体以下会输出一下信息:

Qt编译mysql以及创建表后进行导入操作第13张

看见上面的QMYSQL了吧,说明已经检測到了mysql数据库驱动了。如今能够进行后面的操作了。

       首先,为了进行连接数据库。必须创建数据库和数据表,怎么创建呢?这个原理还和大家熟知的sqlserver一样,仅仅只是,略微有点差别,可能是命令大家还不熟悉,随意新建一个文本文件,进行编辑:利用sql语句进行创建表,就创建一个简单的学生表吧。

输入一下sql语句:

Qt编译mysql以及创建表后进行导入操作第14张

注意输入完毕后保存文件。文件的后缀是.sql    !!!

。。

         下一步是关键的时候,进行导入数据表。

Qt编译mysql以及创建表后进行导入操作第15张

依照上面的命令:show databses;---回车。就可以看见当前的数据库名称。接下来创建数据库--这和我们在sqlserver中学的一样。

create databses  mydatabse;

Qt编译mysql以及创建表后进行导入操作第16张

运行导入命令。将之前写好的创建数据表导入数据库中---

Qt编译mysql以及创建表后进行导入操作第17张

此次,完毕了主要的任务,在这里仅仅是创建了简单的一张表,能够依据你的须要自行创建数据表。

      注:在运行source命令之前不许使用数据库。也就是说,你必须指定你要为哪个数据库导入表。

完毕后,相同的方法,插入数据,也是在一个网文本文件里写好插入数据命令,然后运行导入命令.

       以上步骤完毕后。可以进行一个简单的连接数据库測试,检測是否可以连接上。

#include <QApplication>
#include "widget.h"
#include <QMessageBox>
#include <QSqlError>
#include <QTextCodec>

bool creatconnect()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");
    db.setPort(3306);
    db.setDatabaseName("student");
    db.setUserName("root");
    db.setPassword("123456");

    bool ok = db.open();//建立数据库连接

    if(!ok)
    {
        QMessageBox::critical(0,QObject::tr("连接数据库失败!

"),db.lastError().text()); return false; } else { QMessageBox::information(0,QObject::tr("Tips"),QObject::tr("连接数据库成功。。!

")); return true; } } int main(int argc, char *argv[]) { QApplication a(argc, argv); QTextCodec *codec = QTextCodec::codecForName("GB2312"); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForTr(codec); if(!creatconnect()) { return 1; } Widget w; w.show(); return a.exec(); }

点击Run(执行)能够看见:

Qt编译mysql以及创建表后进行导入操作第18张      Qt编译mysql以及创建表后进行导入操作第19张

能够看见查询的数据。

       至此,全部简单的编译測试工作已经完毕了。

小伙伴们,快去试试你们的Qt和mysql吧。

      測试project文件我已经上传了,大家能够下载源代码。

http://download.csdn.net/detail/u013704336/8278693

        以上内容。纯属个人理解,若有不论什么问题,欢迎大家指出,共同学习。(creaazylq@163.com)

   


免责声明:文章转载自《Qt编译mysql以及创建表后进行导入操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇iOS 本地存储四种方法Nginx核心知识100讲学习笔记(陶辉)详解HTTP模块(详解11阶段)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥

对于微软开发者来说,每次BUILD大会都是值得期待的。这次也是惊喜满满,除了大众瞩目的WP8.1的发布还有一项会令开发者兴奋的技术出现:.NET NATIVE。下面就来详细了解一下其为何物。 [小九的学堂,致力于以平凡的语言描述不平凡的技术。如要转载,请注明来源:小九的学堂。cnblogs.com/xfuture]    .Net当初的出现是因为Java...

gcc 命令

实例 gcc 命令详解 可调试宏 gcc -ggdb3 -Wall -O0 test.c -o test 原文链接 gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]3.有汇...

BIBTeX制作参考文献 [转]

LaTeX 对参考文献的处理有这么一些优点:1. 可以维护一个 bib 文件,在你的整个研究生涯可以只维护这样一个文件,就象一个数据库,每个参考文献是一个记录,由一个唯一的 ID (例如下面的 MartinDSP00)描述。比如我的 myreference.bib 文件里一条典型的文献是这样的:@article{MartinDSP00,author = "...

C++ 实现的netstat -an 的功能&amp;lt;转&amp;gt;-目的为获取rtmp推流地址如果是域名的话查看1935的ip

目的可能是为了获取rtmp真正的推流ip 如果rtmp推流地址是域名,往CDN推流的话,需要nslookup  的那种DNS解析,然后获取的几个ip 可以使用netstat -n 等命令查看 1935端口的真正ip是多少,废话不多说,下面是代码: -------------------- 代码中可能只需要关心 EnumTCPTable() 然后判断 i...

Android Native C 之 Helloworld的四种编译方式_转载

一.编写helloworld.c Android.mk     [root@fontlose jni]# cat hello.c  [cpp] view plaincopyprint?  #include <stdio.h>   int main()   {       printf("Hello World!\n");       ...

从零开始写操作系统(基于XV6):echo重写与并发进程控制功能构思

像这种教学目的操作系统(例如XV6 Minix)是不能小看的。 比如上古传说Linus Torvalds大神在上Minix操作操作系统课时突发奇想! 在芬兰的赫尔辛基大学用Minix操作平台建立了一个新的操作系统的内核,他把它叫做Linux。 我也希望走走人家大神当年走的路. 关于xv6 的编译,为了能够重写拓展xv6需要将修改后的xv6重新编译 1.要将...