oledb vc访问mdb数据库_vc调用ADO访问ACCESS数据库

2008-09-23 回答

// 在stdafx.h中加入

#import "c:\program files\common files\system\ado\msado15.dll" \

no_namespace \

rename ("EOF", "adoEOF")

// app类中声明如下变量

// 定义ADO连接变量指针

_ConnectionPtrm_pConnection;

// 在APP中的InitInstance()添加如下代码

// 初始化COM,创建ADO连接等操作

AfxOleInit();

m_pConnection.CreateInstance(__uuidof(Connection));

// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,

try

{

// 打开本地Access库

m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=XiAnJiDianYJS.mdb",""

,"",adModeUnknown);

}

catch(_com_error e)

{

AfxMessageBox("数据库连接失败,确认数据库是否与可执行程序在同一目录下!");

return FALSE;

}

// 在APP中的ExitInstance() 添加如下代码

// 关闭ADO连接状态

if (m_pConnection->State)

{

m_pConnection->Close();

m_pConnection= NULL;

}

// 在操作实现代码前添加如下代码

extern CSalaryManageSYSApp theApp;// 在此引用应用类中的theApp来获取库连接指针

// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,

// 因为它有时会经常出现一些想不到的错误。jingzhou xu

// 打开表DemoTable

try

{

m_pRecordset->Open("SELECT * FROM DemoTable", // 查询DemoTable表中所有字段

theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针

adOpenDynamic,

adLockOptimistic,

adCmdText);

}

catch(_com_error *e)

{

AfxMessageBox(e->ErrorMessage());

}

// 读取

void CAdoRWAccessDlg::OnReadAccess()

{

_variant_t var;

CString strName,strAge;

// 清空列表框

m_AccessList.ResetContent();

strName=strAge="";

// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,

// 因为它有时会经常出现一些想不到的错误。jingzhou xu

try

{

if(!m_pRecordset->BOF)

m_pRecordset->MoveFirst();

else

{

AfxMessageBox("表内数据为空");

return;

}

// 读入库中各字段并加入列表框中

while(!m_pRecordset->adoEOF)

{

var = m_pRecordset->GetCollect("Name");

if(var.vt != VT_NULL)

strName = (LPCSTR)_bstr_t(var);

var = m_pRecordset->GetCollect("Age");

if(var.vt != VT_NULL)

strAge = (LPCSTR)_bstr_t(var);

m_AccessList.AddString( strName + " --> "+strAge );

m_pRecordset->MoveNext();

}

// 默认列表指向第一项,同时移动记录指针并显示

m_AccessList.SetCurSel(0);

OnSelchangeListaccess();

}

catch(_com_error *e)

{

AfxMessageBox(e->ErrorMessage());

}

}

上面是从我的代码里面拷贝出来的仔细读改为自己的就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值