您的位置:首页 > 编程语言 > Qt开发

通过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 ();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: