access c++ mfc使用


前言简介  引用百度 

Microsoft Office Access是由 微软发布的 关系数据库管理系统。它结合了  MicrosoftJet Database Engine 和  图形用户界面两项特点,是 Microsoft Office 的系统程序之一。
Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它是微软 OFFICE的一个成员, 在包括 专业版和更高版本的 office版本里面被单独出售。2012年12月4日,最新的微软Office Access 2016在微软Office 2016里发布,微软Office Access 2013 是前一个版本。
MS ACCESS以它自己的格式将 数据存储在基于Access Jet的数据库引擎里。它还可以直接导入或者 链接数据(这些数据存储在其他应用程序和数据库)。
软件开发人员和数据架构师可以使用Microsoft Access开发应用软件,“高级用户”可以使用它来构建软件 用程序。和其他办公应用程序一样,ACCESS支持Visual Basic宏语言,它是一个面向对象的编程语言,可以引用各种对象,包括DAO(数据访问对象),ActiveX数据对象,以及许多其他的 ActiveX组件。可视对象用于显示表和报表,他们的方法和属性是在VBA编程环境下,VBA代码模块可以声明和调用Windows操作系统函数。

个人吐槽

最近一个小项目需要客户需要用到 access  于是 我去下载一个 怎么找都是 跳到 Microsoft Office这个鬼玩意。。 折腾了一个多小时才发现 是他的组件之一好吧。。。。

正文

链接dll

需要 先链接 dll  一般安装之后 都会在 C:\Program Files\Common Files\System\ADO\msado15.dll 这个位置  当然如果没有直接查找 msado15.dll 自己改路径好了   
把这个玩意放到 stdafx.h头文件里面
  
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace  rename("EOF", "adoEOF")

no_namespace   不适用命名空间      

 rename("EOF", "adoEOF")      因为 EOF和windows  宏定义重出  所以需要自己命名一个   一般看他们的文章都写 ado EOF...随大流好了

然后在类里面导入三个  对象 

	_ConnectionPtr m_pConnection;//创建数据库的链接对象
	_RecordsetPtr m_pRecordset;// 创建记录集    采集数据
	_CommandPtr m_pCommand;//命令对象 使用SQL语句

初始化

忘记了是摘抄那个前辈的代码了。。。   关键点就是Data Source=zk_study.mdb  改成自己的  mdb..


HRESULT hr = m_pConnection.CreateInstance(__uuidof(Connection));//创建Connection对象
if (SUCCEEDED(hr))
{
	m_pConnection->ConnectionTimeout = 600;//  链接数据库时间限制 
	m_pConnection->CommandTimeout = 120;//  也许是SQL语句执行时间限制
	//然后打开数据库  OPEN函数的参数是很有讲究的
	//Open 方法可打开一个到数据源的连接。当连接打开时,您可以对数据源执行命令
	//一个包含有关连接的信息的字符串值。该字符串由一系列被分号隔开的 parameter=value 语句组成的。
	//一个字符串值,包含建立连接时要使用的用户名称。
	//一个字符串值,包含建立连接时要使用的密码。
	//一个 ConnectOptionEnum 值,确定应在建立连接之后(同步)还是应在建立连接之前(异步)返回本方法。
	hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=zk_study.mdb", "", "", adModeUnknown);// 
	//ConnectionString 属性有 5 个参数:
	//Provider---》用于连接的提供者的名称。
	//File Name---》提供者特有的文件(例如,持久保留的数据源对象)的名称,这些文件中包含预置的连接信息。
	//Remote Provider--》当打开客户端连接时使用的提供者的名称。(仅限于远程数据服务。)
	//Remote Server--》当打开客户端连接时使用的服务器的路径名称。(仅限于远程数据服务。)
	//url---》标识资源(比如文件或目录)的绝对 URL。
	//打开模式
	/*
	adModeUnknown = 0,
	adModeRead = 1,
	adModeWrite = 2,
	adModeReadWrite = 3,
	adModeShareDenyRead = 4,
	adModeShareDenyWrite = 8,
	adModeShareExclusive = 12,
	adModeShareDenyNone = 16,
	adModeRecursive = 4194304
	*/

	m_pRecordset.CreateInstance(__uuidof(Recordset));//这是com组件里面创建对象的调用方法,对象调用CreateInstance创建,参数是全球唯一标示符
	
}

查询    

直接使用 sql 的语句即可

char buf[MAX_PATH];
sprintf(buf, "SELECT * FROM %c", ch);//查找的表格
m_pRecordset->Open(buf,                // 查询STUDENT表中所有字段,即对表STUDENT进行操作
		m_pConnection.GetInterfacePtr(),
		// 获取库接库的IDispatch指针
		adOpenDynamic,
		adLockOptimistic,
		adCmdText);
while (!m_pRecordset->adoEOF)
{
	_variant_t  theValue;
	theValue = m_pRecordset->GetCollect("释义");//查找 解释
	if (theValue.vt == VT_NULL)
	{
				m_pRecordset->MoveNext();
		continue;//如果不为空  的话
	}
	m_pRecordset->MoveNext();
}
增删改查    都是 一路货色  会SQL语句即可


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值