How to access database using C++ & ADO - 如何用C++和ADO访问数据库

89 篇文章 0 订阅
37 篇文章 0 订阅

一、在:CWinApp::InitInstance 函数中用AfxOleInit初始化 COM
 
 if (!AfxOleInit())
 {
  AfxMessageBox("AfxOleInit Failed!");
  return FALSE;
 }


二、用 #Import 引入 ADO 对象 Dll:msado15.dll
 
 #import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF", "adoEOF")
 
 //Notice:这句话输入完毕后,VC就会在:程序生成目录中(Debug/Release)自动产生两个文件:
 //  msado15.tlh
 //  msado15.tli
 
三、使用 ADO 访问数据库
 
void CPrjADOAccessDatabaseTestDlg::OnbtnReadSqlServer()
{
 // TODO: Add your control notification handler code here
 
 CString strSql;
 CString strMsg;
 long lRecordCount;
 
 _RecordsetPtr rs;
 _ConnectionPtr conn;

 _variant_t var;
 //---------------------------------------------------------
 rs.CreateInstance(__uuidof(Recordset));
 conn.CreateInstance(__uuidof(Connection));
 //---------------------------------------------------------
 strSql = "select FirstName from dbo.Employees";
 
 //连接数据库
 
 conn->Open("Provider=SQLOLEDB;SERVER=127.0.0.1;DATABASE=AIS20070417160827;UID=sa;PWD=sa","","",-1);
  
 //---------------------------------------------------------
 //记录集取数
    rs->CursorLocation = adUseClient;
    rs->CursorType = adOpenForwardOnly;
    rs->LockType = adLockReadOnly;
 
 rs->Open("select * from t_User",conn.GetInterfacePtr(),adOpenForwardOnly,adLockReadOnly,adCmdText);
 
 //遍历记录集
 while(!rs->adoEOF)
 {
  
  var = rs->Fields->GetItem("FName")->Value;

  strMsg = (LPCSTR)_bstr_t(var);

  MessageBox(strMsg);
  
  strMsg.ReleaseBuffer();
  
  rs->MoveNext();

 }

 //清理战场,关闭对象
 rs->Close();
 conn->Close();
  
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值