使用ADO ActiveX控件 ADO Data control 访问Access数据库。

MFC_USER MFC_USER 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在我的对话框里加了个ADO Data control,用来访问Access数据库。我的做法如下。


前期已在StdAfx.h中添加
#include "COMDEF.h"
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

已经通过其属性对话框和数据库建立了连接,
1、从中选择Microsoft Jet 4.0 OLE DB Provider选项,然后单击“下一步”按钮,出现“测试连接”对话框,单击,选择数据库a1.mdb->打开单击“测试连接”按钮,出现对话框“测试连接成功”,
2、单击“确定”按钮退出。再右键单击Adodc1控件,选择Properties属性命令,见Use Connection String下的最终连接字符串为:Provider = Microsoft.Jet.OLEDB.4.0;Data Source = D:\Backup\我的文档\a1.mdb;Persist Security Info = False。
3、单击RecordSource选项卡,将Command Type选择为1-adCmdText。在Command Text(SQL)文本框中输入:select *from a1,然后关闭属性对话框。
并通过在其控件上右击->建立类向导,自动导入了 C_Recordset C_Recordset CFields CField CAdodc类。并申明了
CAdodc m_myadoc;
C_Recordset m_myrest;
CFields m_Fields;
CField m_Field;

在OnInitDialog()
中执行
m_myadoc.SetRecordSource("SELECT * FROM a1");
m_myadoc.Refresh();
m_myrest = m_myadoc.GetRecordset();
// 这一行以上的代码都没有问题。
m_myrest.MoveFirst();//正常运行时,程序自动结束。
//调试时显示Unhandled exception in a.exe (MFC042D.DLL):OxC000005: Access Violation
//只要是和m_myrest有关的任何操作都会导致上述的问题,包括m_myrest.GetRecordCount(),m_myrest.MoveNext()等。

//工程已经完成很多了,就差一点了,但是卡在这实在调试不出来,希望高手能人指点一二。


...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部
MFC_USER
数据库 4,017 成员 39,805 内容