QT MSVC2017 64-bit 打开Access数据库【亲测可用】
这里我把封装的一个数据结构体和链接的方法列一下,如果有问题可以直接下载我的案例文件,或者直接联系我。
结构体:
struct struTable
{
int iRow = 0; //行数
int iColumns = 0; //列数
QString qTableName = “”; //表名
QList<QList> tableData;//行:一行数据
};
包装函数:
QList CAccess::readAccessMDB(QString mdbPath)
{
QList m_tableList;
//连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
QString databaseName = QString::fromLocal8Bit("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=%1 ").arg(mdbPath);db.setDatabaseName(databaseName);
qDebug()<<databaseName;//打开数据库
bool ok = db.open();
//qDebug() << ok; // Returns trueif(ok)//success
{//qDebug() << ok; // Returns trueQStringList tables = db.tables(QSql::Tables);for(int i = 0; i < tables.size(); i++){struTable table;//一张表格table.qTableName = tables[i];QString sqlString = "select * from " + tables[i];QSqlQuery sql(sqlString);//返回包含当前查询的字段信息的QSqlRecordQSqlRecord rec = sql.record();table.iColumns = rec.count();//列数QList<QString> rowData;QString fieldName;//索引名for(int k = 0; k < table.iColumns; k++){fieldName = rec.fieldName(k);rowData.push_back(fieldName);}table.tableData.push_back(rowData);int iRow = 1;//第几行while (sql.next()){rowData.clear();for(int j = 0; j < table.iColumns; j++){QString str = sql.value(j).toString();rowData.push_back(str);}table.tableData.push_back(rowData);iRow++;}table.iRow = iRow;m_tableList.push_back(table);}
}
else//fail
{qDebug() <<QStringLiteral("打开文件夹失败!");
}return m_tableList;
}
这里最最最重要的只有一句话,就是区别于一般的32位的数据库的连接:
32位的是:
QSqlDatabase db = QSqlDatabase::addDatabase(“QODBC”);
QString databaseName = QString::fromLocal8Bit("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=%1 ").arg(mdbPath);
db.setDatabaseName(databaseName);
而64位的连接是:
*QSqlDatabase db = QSqlDatabase::addDatabase(“QODBC”);
QString databaseName = QString::fromLocal8Bit("DRIVER={Microsoft Access Driver (*.mdb, .accdb)};FIL={MS Access};DBQ=%1 ").arg(mdbPath);
db.setDatabaseName(databaseName);
qDebug()<<databaseName;
QT MSVC2017 64-bit 打开Access数据库【亲测可用】相关推荐
- QT实现PDF打印文字+图片。亲测可用!!!
//在同一个文件中插入文字和图片,保存在E盘QPrinter printer_text;printer_text.setOutputFormat(QPrinter::PdfFormat);//保存文件 ...
- VC6.0连接数据库,并把大量数据从ACCess转移到SQL sever2008 的问题(亲测可用)
如果以下有不懂,可以加我微信交流xpj13098878561 VC6.0连接数据库,并把大量数据从ACCess转移到SQL sever2008 的问题(亲测可用) VC6.0下载连接https://p ...
- Office 2019 for Mac 64位(亲测可用)
Office 2019 for Mac 64位 大小:1.7G 微软官方下载地址: https://officecdn-microsoft-com.akamaized.net/pr/C1297A47- ...
- ArcGIS Desktop 10.2 完全破解安装教程(含win7 32/64位+下载地址+亲测可用)
在之前的ArcGIS 10.1的破解安装教程中,得到了很多人的认可,也帮助了一些人成功的安装上了ArcGIS的软件.这次换了台电脑需要重装ArcGIS,这次我选择的是ArcGIS10.2,并且成功破解 ...
- Spoon/Kettle 连接sqlserver数据库遇到的问题 (亲测可用,图文讲解)
本文涉及到的错误: Spoon/Kettle 连接sqlserver数据库遇到的问题 (亲测可用,图文讲解) [IM002][Microsoft][ODBC 驱动程序管理器]未发现数据源名称并且未指定 ...
- mysql workbench 1142,eclipse window 10 64位 jdk 1.8 亲测
[实例简介] eclipse window 10 64位 jdk 1.8 亲测 氧气版_~~~~~~~~~~~~ 解压就ok啦 [实例截图] [核心代码] 6982dbef-384c-46b7-94f ...
- redistemplate动态切换数据库(亲测可用)
redistemplate动态切换数据库(亲测可用)学习记录 /*** 设置数据库索引** @param dbIndex*/public void select(Integer dbIndex) {i ...
- 从零开始的Linux 802.11WiFi CSITool(AP和monitor模式均亲测可用)
从零开始的Linux WiFi CSITool(AP和monitor模式均亲测可用) 主要参考 1.官方资料: 2.亲测可用安装教程: 零.Linux及CSI相关知识的学习 1.Linux相关 1.1 ...
- 服务器进tp5项目报nginx404错误,TP5框架在nginx环境下路由报404错误解决方法 亲测可用...
前段时间给客户写了个TP5框架的后台,主要是API调用,上传到客户服务器后发现首页可用,但所有内页报404错误,网上一搜发现天多一样的问题,但找了很多都是不可用的,而且都是过时的,但最终还是自己试出来 ...
- vue3+elementPlus主题动态切换2022,亲测可用!
环境 系统: win10 64 node版本 v16.13.2 vue: ^3.2.33 element-plus: ^2.2.0 开始 在线 预览效果 || git仓库地址 本文换肤的实现思路是手动 ...
最新文章
- 最多显示6行并且最多显示三条文本
- 35岁危机可能是真的!调查显示在领英上年龄越大越难找工作,得贴年轻头像才行...
- 南达科他州立大学计算机科学,关于举行南达科他州立大学Srinivas Janaswamy博士学术报告的通知...
- LeetCode Sort Characters By Frequency
- Web API之service worker
- 025_jdbc-mysql-Statement的sql注入问题
- 【采用】知识图谱简介及风控应用场景
- Android中四种启动模式,最容易理解的小白教程
- vue node --- 前后端联系的知识梳理
- Visual Assist插件使用的一些相关文章
- 简述计算机控制系统调试和运行的过程,简述计算机控制系统的一般控制过程
- Android studio设置代码自动提示
- linux qt调用摄像头,Qt5下实现摄像头预览及捕获图像方法实例
- (转发)详解汽车UDS诊断协议(二)
- Creator 开发微信小游戏-好友排行榜
- Java合并word文档的两种方式
- 使用DHT11和51单片机进行温湿度的读取(保证好用版本)
- Messaging——WebSocket
- 网络安全工程师要学习哪些编程语言?哪里学网络安全知识可靠?
- 究竟什么病毒轻而易举感染了全球8500万部手机?