通过Qt5.4.2访问MySQL5.5与Access 2013数据库
2016-01-18 12:30
681 查看
1、查看Qt5.4.2支持哪些数据库驱动
(1)相关代码
QStringList drivers = QSqlDatabase::drivers (); foreach (QString driver, drivers) { qDebug() << "\n" << driver; }
(2) 数据库驱动程序一览
驱动程序 | 数据库 |
---|---|
“QSQLITE” | “SQLite第3版” |
“QMYSQL” | “MySQL” |
“QMYSQL3” | “” |
“QODBC” | “ODBC(微软的SQL服务器)” |
“QODBC3” | “” |
“QPSQL” | “PostgreSQL” |
“QPSQL7” | “” |
(3)设置环境变量
控制面板/系统和安全/系统/系统属性/高级/环境变量。D:\qt5.4.2\5.4\mingw491_32\bin;D:\qt5.4.2\Tools\mingw491_32\bin;D:\MySQL\MySQL Server 5.5\bin
2、定义一个函数,查看访问是否成功
(1)使用QLabel显示信息
QLabel *label = new QLabel(this); label->setGeometry (QRect(50,50,200,25)); if (isOpen) { label->setText (tr("连接成功")); } else { label->setText (tr("连接失败")); }
(2)使用QMessageBox类
if (isOpen) { QMessageBox::information (this,"提示","连接成功"); } else { QMessageBox::warning (this,"警告","连接失败"); }
3、访问MySQL数据库
(1)安装路径相关问题
MySQL6及以上的版本无法选择安装路径,如果是默认安装,会安装在C:\Program Files文件夹,路径名中有空格,在Qt MinGW下是无法解析的(D:\Program Files\MySQL Server 5.5,中间存在空格)。(2)解决方法
在C盘创建一个没有空格的mysql文件夹,将D:\MySQL\MySQL Server 5.5目录下的include与lib这两个文件拷贝到该文件夹。(3)MinGW命令模式下(cmd)
Qt配置MySQL可参考:kuenking111的专栏
(4)设置MySQL数据库驱动
QSqlDatabase connectMysql=QSqlDatabase::addDatabase("QMYSQL"); connectMysql.setHostName("localhost");//主机名 connectMysql.setUserName("tjuwp");//\用户名必须是已经在数据库中的用户 connectMysql.setPassword("tjuwp2016");//登录密码 connectMysql.setDatabaseName("test");//设置数据库名字 bool isOpen=connectMysql.open();
4、访问Access数据库
(1)用户数据源的名称、驱动程序与支持的数据库格式
通过控制面板/系统和安全/管理工具/数据源(ODBC),可以看到用户数据源的名称、驱动程序与支持的数据库格式(Access 2013支持.accdb格式与.mdb格式,比较老的版本仅支持.mdb格式),本机的名称为MS Access Database,驱动程序为Microsoft Access Driver (.mdb, .accdb),这个需要注意,参考网上资料时MS Access,名称不对。(2)设置Access数据库,QODBC驱动
QSqlDatabase connectAccess = QSqlDatabase::addDatabase ("QODBC"); //两种格式之间必须有空格,否则访问失败 QString str = QString("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access Database};DBQ=D:/Qtcode/CH_sql/mydb1.accdb;"); connectAccess.setDatabaseName (str); bool isOpen = connectAccess.open ();
相关文章推荐
- Qt创建工程
- Qt 安装
- ubuntu12.04下安装Qt
- Qt 5.x 全局热键 for windows
- Qt 操作 pdf 文件
- Qt 获取字符串的UTF8编码值
- Qt写一个截屏工具(窗口透明)
- 自学QT之图片操作(缩放、平移、扭曲和旋转等)
- 自学QT之图片报错Paint device returned engine == 0, type: 1
- 关于Qt信号与槽的小结
- 如何在Qt工程中正确地引用用户自定义控件
- QT无边框可移动可改变大小窗体
- Qt5 取消了QTextCodec::setCodecForTr()和QTextCodec::setCodecForCString()这两个函数。
- QT中PRO文件写法
- Qt之JSON生成与解析
- qtchooser
- QT5.5或QT5.6与echarts实现动态图表
- qt发布
- Qt、GTK 和KDE、GNOME的关系-转
- Qt中截图功能的实现