成都网站建设设计

将想法与焦点和您一起共享

qt怎么运用mysql的简单介绍

「Qt」 mac环境配置qt的mysql驱动

Qt项目里用到了mysql,运行后报错:

成都创新互联公司专注于杜尔伯特网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供杜尔伯特营销型网站建设,杜尔伯特网站制作、杜尔伯特网页设计、杜尔伯特网站官网定制、微信小程序服务,打造杜尔伯特网络公司原创品牌,更为您提供杜尔伯特网站排名全网营销落地服务。

查阅资料知道需要配置mysql驱动,本以为几分钟解决的事情,没想到开启了恶魔经历,整整两天时间,mmp!

Stop! 废话别说啦,入正题:

首先,Qt mysql的安装和环境配置就略了,一搜一大把。

不过注意两点:

先进入到/Users/ing/Qt5.14.2/5.14.2/Src/qtbase/src/plugins/sqldrivers目录下,执行:

这里确保qmake用的qt里的就行

其实你可以配置下qt相关的环境变量,在bash_profile里添加:

然后,source ~/.bash_profile ,还有别忘了 source ~/.zshrc

执行成功的话会输出:

根据提示 依次执行:

make sub-mysql

make

make install

进入/Users/ing/Qt5.14.2/5.14.2/clang_64/plugins/sqldrivers下执行,查看链接库:

输出:

此时,运行qt程序 依旧报错。

根据查阅的资料,问题出在

网友们所说的“诡异”的路径那一行(你的输出可能和我的不一样的,但问题应该一样) ,也就是有 libmysqlclient.21.dylib 这行。

另外查了下 @repath 的含义 意思是说 不能明确的指向。。。所以 这里就需要将libmysqlclient.21.dylib 指向扳到正确的道路。

方法就是利用 install_name_tool -change

执行

这里一定要注意顺序,刚开始我就是顺序搞错了,死活就是不行,最后跑到官方论坛里用蹩脚的英语发帖求教也无果,最后还是一遍的重试,一遍的检查才发现的。一天就这么浪费了。

此刻在运行qt程序 ,就不会再报上面的错误了。

撒花,礼花搞起~~~

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() 函数可由于检测数据库是否连接成功 coutDBConnection(); 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.#include QtSql/QMYSQLDriver去掉

然后重新运行程序

根据提示

2.如果找不到QMYSQL驱动,那么你需要先编译这个驱动。先到Plugins/SqlDriver下看看有没有qsqlmysql.*与qsqlmysqld.*的动态库文件。

如果没有,说明你没有编译mysql驱动插件。如果有但是连不上驱动,说明你的动态库没有放在程序的目录下(实质是没有放在程序可搜索的目录里),把这些动态库放在程序目录,不要少mysql的动态库(这个不是QT编译的那个QSQLMSQL的那个,是MYSQL自己的都太库)。

3.编译mysql驱动插件。

打开你的QT助手(Qt Assistant),查找这个“SQL Database Drivers”。里面有编译的方法。

注意了这个编译需要你提供MySql的头文件和库文件。你说的mysql.h即mysql的头文件了。如果你没有,去下载MYSQL的SDK。

qt连接mysql问题

首先:进入到自己相应的qt/src/plugins/sqldrivers/mysql 目录下 (我的目录为:S:\QT\4.8.0\src\plugins\sqldrivers\mysql),这个下面有两个文件mysql.pro,一个mian.cpp! 用文本编辑器打开该目录下的mysql.pro文件 在mysql.pro中加入:

INCLUDEPATH+="C:\Program Files\MySQL\MySQL Server 5.5\include" LIBS+="C:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib"

保存并退出(即你的mysql的include 路径和 lib 下 opt 的 libmysql.lib 路径)

打开Qt 4.8.0 Command Prompt, 编译这个文件

#qmake -o Makefile mysql.pro

提示3条警告信息,但没影响

#mingw32-make (这个网上有好几个编译命令,我的是用nmake);

然后你会发现你的 qt 下这个 qt/plugins/sqldrivers路径(我的路径为S:\QT\4.8.0\plugins\sqldrivers下)下多了四个文件

分别为 libqsqlmysql4.a, libqsqlmysqld4.a, qsqlmysql4.dll,qsqlmysqld4.dll (生成文件不一定是上面四个)这样基本上就编译成功,可以使用 mysql 了!~

最后安全起见再将 mysql下 bin 文件中libmysql.dll文件拷贝到 system32 下面 然后测试:

#includeQtGui #includeQtSql #includecstdlib

#includeQtGui/QApplication #includeQtSql/QtSql boolcreateConnection() {

qDebug()"Availabledrivers:";

QStringListdrivers=QSqlDatabase::drivers(); foreach(QStringdriver,drivers) qDebug()"\t"driver;

QSqlDatabasedb=QSqlDatabase::addDatabase("QMYSQL"); qDebug()"MYSQLdrivervalid?"db.isValid(); }

intmain(intargc,char*argv[]) {

至于mysql.pro我是在网上下载的


分享文章:qt怎么运用mysql的简单介绍
网站URL:http://chengdu.cdxwcx.cn/article/ddseeji.html