1.下载并安装Access数据库引擎64位:
Download Microsoft Access 2016 数据库引擎可再发行程序包 from Official Microsoft Download Center
下载好后安装在开发机上:
Access引擎安装成功.
配置Access数据库
这样就可直接通过配置名来访问数据库了:
sql.setDatabaseName("carddb");
成功访问效果:
如果没有配置用户DSN ,也可直接用连接字符串来访问,效果一样:
sql.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=C:\\Users\\dev\\Desktop\\carddb.accdb");
实现代码:
#include <QCoreApplication>
#include <QDebug>
//数据库相当头文件
#include <QtSql/QSqlDatabase>
#include <QSqlDriver>
#include <QSqlError>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//"Qt 5.12所支持的数据库:"
//"驱动名:QSQLITE"
//"驱动名:QODBC"
//"驱动名:QODBC3"
//"驱动名:QPSQL"
//"驱动名:QPSQL7"
qDebug()<<QStringLiteral("Qt 5.12所支持的数据库:");
for(QString drv:QSqlDatabase::drivers()){
qDebug()<<QStringLiteral("驱动名:%1").arg(drv);
}
//先安装ms-office,然后用access创建数据库与表
//声明数据库对象
QSqlDatabase sql;
//指定要访问的数据库类型,使用ODBC驱动
sql = QSqlDatabase::addDatabase("QODBC");
if(!sql.isValid()){
qDebug()<<QStringLiteral("读取数据库出错");
}
//sql.setDatabaseName("carddb");
sql.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=C:\\Users\\dev\\Desktop\\carddb.accdb");
//打开数据库
if(sql.open()){
qDebug()<<QStringLiteral("打开Access数据库成功");
}else{
QSqlError err = sql.lastError();
qDebug()<<QStringLiteral("打开Access数据库失败:%1").arg(err.driverText());
}
return a.exec();
}
数据库设计:
数据库访问