介绍:简单的数据库操作,读取、写入、删除即可。
目的:操作简单,无复杂的环境、头文件、程序安装等
编译器:VScode 2020
操作系统:Windows 10 64位
代码
连接并读取数据库
#include <afxdb.h> //操作数据库的头文件
CDatabase m_db; // 数据库连接对象
CRecordset m_rs(&m_db); // 记录集对象
CString strConnect = _T("Driver={Microsoft Access Driver (*.mdb, *.accdb)};\
DBQ=path to mdb file"); //数据源信息
m_db.OpenEx(strConnect, CDatabase::noOdbcDialog);
CString strSQL = _T("SELECT * FROM YourTableName"); // SQL操作
m_rs.Open(CRecordset::snapshot, strSQL, CRecordset::readOnly);
while (!m_rs.IsEOF()) // EOF表示记录集的结尾
{
// 假设你的表有一个名为"FieldName"的字段
CString strFieldName;
m_rs.GetFieldValue(_T("FieldName"), strFieldName);
// 在这里处理字段值,例如显示在界面上或进行其他操作
AfxMessageBox(strFieldName); // 仅作为示例,实际使用中可能需要其他处理方式
m_rs.MoveNext(); // 移动到下一条记录
}
连接不成功
- 未识别到数据源且未识别到数据源驱动
- 数据源和程序平台不匹配
- 弹出选择数据源的窗口
最终确认,遇到的问题是系统为64位,而用户DSN为32位,仅有SQL驱动程序,无法匹配。
查看方法:
控制面板> 管理工具 > ODBC 数据源(64 位)
解决过程
下载64位MS Acess Database驱动程序
https://www.microsoft.com/zh-cn/download/details.aspx?id=54920
根据提示进行下载安装。
【选】安装驱动时,提示删除相关32位驱动程序
卸载office 2010
控制面板> 程序和功能> 搜索2010> 卸载相关的软件
卸载Office 16 Click-to-Run Extensibility Component
参考https://blog.csdn.net/shoppingend/article/details/121868814
win+R, 输入Installer
在详细信息的信息列表栏 右键添加 在最下方 主题 选项
根据主题选项的信息, 查找到Click-to-Run Extensibility Component的Installer
右键 该 MSI程序, 选择卸载Click-to-Run Extensibility Component,只卸载这一项
再安装64位驱动,安装成功。