ADO访问ACCESS2000

1.Stdafx.h添加如下
// 加入ADO支持库
#import "c:/program files/common files/system/ado/msado15.dll" /      
no_namespace /             //说明ADO对象不使用命名空间
rename ("EOF", "adoEOF")   //说明将ADO中结束标志EOF改为adoEOF,以避免和其它库中命名相冲突。

2.CoInitialize(NULL);//初始化com
CoUnInitialize();  //关闭com
MFC中的AfxOleInit(); //自动初始化和关闭com

3.建立ADO类

#include "StdAfx.h"
#include "ADO.h"


CADO::CADO(void)
{
}


CADO::~CADO(void)
{
}

//打开数据库
bool CADO::OnInitADOConn(void)
{
	HRESULT hr;
	try
	{
		AfxOleInit();
		hr = m_pConnection.CreateInstance(__uuidof(Connection));
		if (SUCCEEDED(hr))
		{
			hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\db1.mdb;","","",adModeUnknown);
		}
	}
	catch(_com_error e)
	{
		CString errorMsg;
		errorMsg.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
		AfxMessageBox(errorMsg);
	}
	return false;
}


// 打开数据集
_RecordsetPtr& CADO::OpenRecordset(_Connection* t)
{
//ASSERT(!sql.IsEmpty());  
try  
{   
	m_pRecordset.CreateInstance(__uuidof(Recordset));    
	if (m_pRecordset == NULL)   
	{    
		AfxMessageBox("RecordSet 对象创建失败! 请确认是否初始化了COM环境.");   
	}
		//打开记录集
		m_pRecordset->Open("SELECT * FROM student",//查询student表
							t,//获取连接库的IDispatch指针
							adOpenDynamic,
							adLockOptimistic,
							adCmdText
							);
}
catch(_com_error e)  
{   
	CString errorMsg;   
	errorMsg.Format("连接数据库失败\r\n错误信息:%s",e.ErrorMessage());   
	AfxMessageBox(errorMsg);         
	//显示错误信息  
}  
return m_pRecordset;
}


// 退出
void CADO::ExitConnection(void)
{
	if (m_pRecordset->GetState() == adStateOpen) //关闭是0 打开是1
	{
		m_pRecordset->Close();
		m_pRecordset = NULL;
	}
	if(m_pConnection->State)//关闭是0 打开是1
	{
		m_pConnection->Close();
		m_pConnection = NULL;
	}
}


_RecordsetPtr& CADO::GetRecordset(void)
{
	//TODO: insert return statement here
	return m_pRecordset;
}


4.

BOOL Cado数据库App::InitInstance()
{
	m_ado.OnInitADOConn();
	m_ado.OpenRecordset(m_ado.m_pConnection.GetInterfacePtr());
	return FALSE;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值