QT链接数据库
2024-08-25 06:51:53
在介绍QT与数据的链接问题上,我在这里就不介绍关于QT环境与mysql、sqlite3环境的安装步骤了,以下的所有的操作都是建立在你已经安装了所有环境的基础上的。好的,那我们就具体来看一看QT环境中怎么与数据进行链接
一、QT链接sqlite3:
QT链接sqlite3比较简单,比如你在你的计算机上已经创建了一个叫users的数据库,这时你需要在QT创建一个项目,在进行数据库的链接之前需要在工程文件(也就是你的.pro文件)中添加
QT += sql
他表示在QT中增加对数据的支持,接下来在项目中增加如下代码:
db = QSqlDatabase::addDatabase ("QSQLITE");
db.setDatabaseName ("users");
if(!db.open ()){
qDebug() << db.lastError ().text ();
}else{
qDebug() << "open database sucessful";
}
当然这边的db是声明在头文件的一个QSqlDatabase的一个类型,这样如果你按上边的写法去做的话,你会发现,你打开数据是100%成功,因为,在打开数据的时候,如果没有他会在你的项目的构建文件中默认创建一个为空的users的数据库文件,如下图:
所以你必须要将操作的数据库文件放到该目录下就可以了。。。
二、QT链接mysql数据库
因为mysql数据库的操作是无法将数据库文件放到构建目录下的,所以他和sqlite3链接QT有些许的不同,QT链接mysql的的代码为:
db = QSqlDatabase::addDatabase ("QMYSQL"); //mysql的数据库驱动
db.setUserName ("root"); //设置操作数据库用户名
db.setPassword (""); //用户密码
db.setHostName ("127.0.0.1"); //设置主机名,我们这边测试使用本机地址
db.setDatabaseName ("wyf"); //设置操作的数据库名字
db.setPort (); //设置端口号(一般默认为3306,我进行了手动的更改)
if(!db.open()){
qDebug() << db.lastError ().text ();
}else{
qDebug() << "open database sucessful";
}
你会发现链接不上mysql数据库,会有如下的提示:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
"Driver not loaded Driver not loaded"
这时你需要把mysql的安装路径,找到mysql的驱动程序libmysql.dll
将他拷贝到你的项目中的可执行文件的目录下:
接下来,再次运行程序,发现已经可以链接上了。。。
最新文章
- 对一致性Hash算法,Java代码实现的深入研究
- 一个语句创建Oracle所有表的序列
- h.Connector的SSL属性实现
- Yii2 捕获错误日志
- 第一个jave程序-helloworld
- 在IDEA上用python来连接集群上的hive
- 在Windows下编译OpenSSL(VS2005和VC6)
- JAVA必备——Struts
- Java BigDecimal Class
- linux 更改用户的默认shell
- 关于springboot的定时器配置
- 【转载】IIS出现“HTTP 错误 500.0,C:\php\php-cgi.exe - FastCGI 进程意外退出”解决方法
- 阿里云三台CentOS7.2配置安装CDH5.12
- Thread的中断机制(interrupt)
- mongodb最大连接数、最大连接数修改
- C++的虚函数试题,常考!!
- python中filter(),map()和reduce()的用法及区别
- [转]连连看游戏 C#
- c语言重载(overriding in C)或函数不定参数个数
- SQL入门教程
热门文章
- [HDU 2102] A计划(搜索题,典型dfs or bfs)
- JavaScript的连续赋值的思考
- 3301: [USACO2011 Feb] Cow Line
- Vuex给我们的.vue文件结构带来了这些变化
- 如何使用Vue2做服务端渲染
- redux三个基本原则
- 读书笔记 effective c++ Item 34 区分接口继承和实现继承
- (11)连个工具类之间的比较4.Collections与Arrays
- Java线程池使用和分析(一)
- JS清除DIV的选中状态