c++ 中连接到access的函数

在文件头需要添加下面这段:
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")

bool linkAccess(int num)
{
//连接到数据库中,并输出数据库中的所有叶片名称
_ConnectionPtr pConnection;
if(pConnection.CreateInstance(__uuidof(Connection)) != S_OK)
{
return FALSE;
}

_bstr_t   strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=leaf.mdb";
if(pConnection->Open(strConn, "", "", adModeUnknown) == S_OK)
{
//连接数据库成功
_RecordsetPtr pRecordset;
if(pRecordset.CreateInstance(__uuidof(Recordset)) != S_OK)
{
pConnection->Close();

return FALSE;
}
//下面四行练习的是如何将int->string
char buffer [33];
itoa(num,buffer,33);
string s(buffer);
string str="SELECT * from leaf where ID="+s;
//下面一行练习如何将string 转为char*
char *orig =const_cast<char*>(str.c_str());
//下面一行练习如何将char* 转为_bstr_t 
_bstr_t strSql(orig);

//上面这么多行的目的就是将num添加到string中,变为_bstr_t  变量



HRESULT hr = pRecordset->Open(strSql, _variant_t((IDispatch*)pConnection, TRUE), adOpenUnspecified, adLockUnspecified, adCmdUnknown);
if(hr != S_OK)
{
pConnection->Close();
return FALSE;
}
_variant_t vt;

pRecordset->MoveFirst();
while(!pRecordset->adoEOF)
{
vt = pRecordset->Fields->GetItem("名称")->Value;
cout<<_com_util::ConvertBSTRToString((_bstr_t)vt)<<endl;
vt = pRecordset->Fields->GetItem("介绍")->Value;
cout<<_com_util::ConvertBSTRToString((_bstr_t)vt)<<endl;

pRecordset->MoveNext();
}



pConnection->Close();
return TRUE;
}
else
{
cout << "数据库连接失败!" << endl;
return FALSE;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值