qt连接mysql数据库 QT中怎样连接MYsql数据库,远程连接数据库等
大家好,qt连接mysql数据库相信很多的网友都不是很明白,包括QT中怎样连接MYsql数据库,远程连接数据库等也是一样,不过没有关系,接下来就来为大家分享关于qt连接mysql数据库和QT中怎样连接MYsql数据库,远程连接数据库等的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
QT中怎样连接MYsql数据库,远程连接数据库等
1: windows下登陆mysql命令行,(1)进入cmd(2) cd mysql安装路径/mysqlserver5.6/bin
(3)使用命令mysql-u root-p然后根据提示输入密码进入命令行
select user();//显示当前用户
2:在同一台电脑上利用Qt访问数据库
(1)显示当前电脑上安装的数据库驱动
QStringList drivers= QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug()<<"/t"<< driver;
(2)QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");/对 QMYSQL进行操作,本函数
有第二个参数连接名
db.setHostName("localhost");//或127.0.0.1本主机
db.setPort(3306);
db.setDatabaseName("example");//对数据库example进行操作
db.setUserName("wangxuetao");//wangxuetao是一个对example数据库有操作权限的账户
db.setPassword("3791948");
于是mysql中增加一个账户可使用
Grant all previliges on*.* to‘wangxuetao’@’localhost’ identified by
‘3791948’ with grant option;
Flush privileges;//更新
(3)db.open()函数可由于检测数据库是否连接成功
cout<DBConnection();
2. m_sqlquery= new QSqlQuery("",m_sqldb);//statement 1:connect db with sql
query
3. if(result== R_OK)
4.{
5. result= m_sqlquery->exec("INSERT INTO children(fname,age) VALUES('A
nn2',13)");
6. if(!result)
7. qDebug()<<" [OK]"<<"EXEC successed";
8. m_sqlquery->exec("SELECT* FROM children c LIMIT 0,1000");
9. while(m_sqlquery->next())
10.{
11. qDebug()<value(0).toString()<value(1).
toString();
12.}
13.}
qt怎么表格输出mysql数据
1)创建ui界面(2)导入头文件一、自动提交模式二、手动提交模式(1)构造函数中的代码(2)“提交”按钮的槽函数在ui界面导入一个Table View。这个控件可以显示表格,在代码中我们通过setHeaderData()函数可以自定义每列的名称。需要用到以下头文件,QSqlDatabase用于连接数据库,QMessageBox用于弹出对话框,QSqlError用于显示数据库的错误信息,QSqlQuery和QSqlTableModel用于操作数据库。#include<QWidget>#include<QSqlDatabase>#include<QMessageBox>#include<QSqlError>#include<QString>#include<QSqlQuery>#include<QSqlTableModel>在Qt窗口显示的表格中改动数据,然后点击回车,数据库中的表格中的数据就自动更新了。注意,在这里必须是敲击回车才会进行数据库的更新,如果直接用鼠标切换到其他的地方是不会更新数据库的。//连接数据库 QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("127.0.0.1"); db.setUserName("root"); db.setPassword("123456"); db.setDatabaseName("aaa2"); if(db.open()==false){ QMessageBox::warning(this,"waring",db.lastError().text());}//实例化model model= new QSqlTableModel(this);//将模型设置到视图 ui->tableView->setModel(model);//给model设置数据表,前提条件是数据库已经打开了 model->setTable("student");
QT中如何驱动链接数据库MYSql
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文件;编译步骤
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所需要的文件
qsqlmysql4.dll
libqsqlmysql4.a
qsqlmysqld4.dll
libqsqlmysqld4.a最后把
qsqlmysqld4.dll
libqsqlmysqld4.a这两个文件复制到QT工具的安装目录的D:\Qt\5.0.1\mingw47_32\plugins\sqldrivers下,写如下代码测试:
4:测试代码 QSqlDatabase db= QSqlDatabase::addDatabase("QMYSQL");
qDebug()
如何解决Qt Mysql中无法加载驱动问题
本文讲解是如何解决Qt Mysql中无法加载驱动问题,MySQL是一个小型关系型数据库管理系统。对于已经融入到Qt中的MySQL,也是很推广!那么先看本文的介绍。
做毕业,这两天一个很大的问题困惑的我不行。毕设我是用qt+ mysql来做的。结果在自己电脑上跑起来很正常,但是编译一个release版本,拿到另外一台电脑上就报错说:can't load driver。试图去解决这个问题,今天总算搞定,这里总结一下。
首先需要说明的是:我用的是qt for vc2005,qt4.5.0 mysql server5.5
整个流程:
1:首先我编译了一个release版本,而后用dependency walker查看了下库的依赖情况。发现依赖于:QtSql4.dll,QtGui4.dll,QtCore4.dll,msvcr80.dll以及KERNEL32.DLL这几个库。其中最后一个是system的,我们不用去管,剩下的这几个显然都需要拷贝到exe同目录下。尤其是msvcr80.dll,我在我电脑上搜了一下:有多大10几个同名的该文件,所以拷贝哪个是很重要的,此时我们只需要在dependency walker查看这个dll的属性,然后去对应目录底下拷贝就行了。所以:第一步就是把这些依赖库拷贝到exe同目录下。(千万不要拷贝错误,尤其是不同的版本)。
2、做完1之后再次运行,提示:找不到驱动。问了一下别人,告之需如下做:
(1)首先在exe同目录下建一个plugins\sqldrivers这样的二级目录,而后将前边编译生成的qt-mysql驱动:qsqlmysql4.dll放到里边。
(2)而后在main.cpp中加上如下两句:
QString strLibPath(QDir::toNativeSeparators(QApplication::applicationDirPath())+QDir::separator()+"plugins"); qApp.addLibraryPath(strLibPath);
做完这两部之后:按理应该没问题了,但是run一下发现:还是提示驱动找不到。
3、再后来,上网查了一下各种说法,发现几种可能性:①你要发布的电脑上没有安装mysql②mysql版本不对。我就纳闷了:找不到驱动与装没装mysql有什么关系?毕竟:驱动是我自己编译的,又不是mysql提供的。问了下别人,别人也这么认为。然后就卡在这里了。我不死心,继续在网上寻找各种可能的答案并进行尝试。最后找了问题,原来:我们需要把mysql提供的:libmySQL.dll这个库拷贝到exe同目录下(该文件在我自己电脑上处于:C:\Program Files\MySQL\MySQL Server 5.5\bin文件夹下)。如此之后再来运行就不再报:找不到驱动这个错误啦!(此时报的是:连接不到某个指定的数据库,那是因为我还没有把数据库文件导入到目标机器上来)。
总结:在其他pc上发布的时候需要做如下工作:
1、使用depenency walker查看依赖库,全部拷贝到exe同文件夹下。
2、(1)在exe同目录下建一个plugins\sqldrivers这样的二级目录,而后将前边编译生成的qt-mysql驱动:qsqlmysql4.dll放到里边。
(2)而后在main.cpp中加上如下两句:
QString strLibPath(QDir::toNativeSeparators(QApplication::applicationDirPath())+QDir::separator()+"plugins"); qApp.addLibraryPath(strLibPath);
3、将mysql/bin目录下的libmySQL.dll拷贝到exe同目录下。
做完以上几步之后就OK了。
至于最后所报的连接不到指定的数据库,原因是这样的:
在开发的电脑上:你建了一个mysql数据库,那么我们需要把这个数据库文件也拷贝到目标机器上,并在目标机器上装mysql,而后将这个数据库文件导入进去。导入之后你会发现:各字段的数据有可能出现乱码,这是由于各个字段的编码格式在开发机器和目标机器上不一致导致的!你需要按照开发机器上的数据库文件配置来重新设置一下目标机器的各个字段编码格式。
而在目标机器上导入数据库文件的方法是:(以建立的数据路名为buaa.sql为例)
1、在目标机器上装mysql
2、命令行运行mysql,进入后执行命令:create database buaa;
3、导入buaa.sql到刚创建的buaa数据库中。(我用的mysql-front这个数据库图形化工具)。
测试: Qt4.5.0commercial+ vc2005 express+ mysql5.5+mysql-front+windows xp
(网上很多人说:找不到驱动是因为目标机器上没有安装vc运行时库的原因,但是我这里没有遇到这个问题:我测试的电脑没有任何vc环境,没有任何qt环境,也没有安装windows sdk。但是如果大家按照我上边的方法测试发现有问题时:可以考虑在目标机器上安装vc运行时库试一下。它分sp1版本和非sp1版本,你对应主机的vc版本选择一个安装就是。)
小结:关于如何解决Qt Mysql中无法加载驱动问题,介绍完了,好像出现此问题的友们还是有很多滴,希望本文对你有所帮助。
关于qt连接mysql数据库,QT中怎样连接MYsql数据库,远程连接数据库等的介绍到此结束,希望对大家有所帮助。