vc++连接ADO数据库

1.

 首先在stdafx.h导入


#import "C:\program files\common files\System\ado\msado15.dll" no_namespace \
rename("EOF","adoEOF")



2.在app类中添加


public:
_RecordsetPtr m_pRs;
_ConnectionPtr m_pConn;


bool ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL);


在APP类中的初始化函数

if( FAILED(::CoInitialize(NULL)) ) 
{
AfxMessageBox(_T("ADO Init failed"));
return false;
}
try
{
m_pConn.CreateInstance(__uuidof(Connection)); 
//m_pConn->Open("Driver=Mysql ODBC 5.1 Driver;Server=localhost;DataBase=student;Port=3306","root","root",adModeUnknown);

}
// Catch Exceptions
catch(_com_error e)
{
CString err;
err.Format(_T("%s"), (char*)e.Description());
AfxMessageBox(err);
}
catch(...)
{
AfxMessageBox(_T("Unknown Error..."));
}
// Init ADO RecordSet
m_pRs.CreateInstance(__uuidof(Recordset));



添加函数

bool CduiApp::ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL)
{
if ( ADOSet->State == adStateOpen)
ADOSet->Close();
try
{
ADOSet->CursorType = adOpenStatic;
ADOSet->CursorLocation = adUseClient;
ADOSet->Open(strSQL, m_pConn.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdUnknown);
return true;
}
catch(_com_error &e)
{
CString err;
err.Format(_T("ADO Error: %s"),(char*)e.Description());
AfxMessageBox(err);
return false;
}
}


然后测试查询:

theApp.ADOExecute(theApp.m_pRs,_variant_t(“select * from user”));
int iCount=theApp.m_pRs->GetRecordCount();
   if (iCount>0)
   {
while (!theApp.m_pRs->adoEOF)
{

   m_list.InsertItem(0,(LPCTSTR)(_bstr_t)theApp.m_pRs->GetCollect("id"));

}

}

ok


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值