c++使用ado访问数据库

首先在stdafx.h中包含

#import "C:/Program Files (x86)/Common Files/System/ado/msado15.dll" no_namespace rename("EOF", "adoEOF") rename("BOF", "FirstOfFile")

这样可以直接使用ado
注:代码到数据库要进行gb2312到utf_8的转换,数据库到代码相反

_ConnectionPtr pConnection;//数据库指针
_RecordsetPtr pRecord;
CoInitialize(NULL);//初始化COM环境
try{
//创建连接实例
    auto hr = pConnection.CreateInstance("ADODB.Connection");
	if (SUCCEEDED(hr))//连接成功
	{
         //连接数据库
         _bstr_t connectStr = "Provider=SQLOLEDB;Data Source=192.168.168.63;Initial Catalog=数据库名称;User ID=sa;Password=sasa";
         hr = pConnection->Open(connectStr, "", "", adModeUnknown);//打开数据库
        _variant_t vAffected;
        //执行查询
        string temp1="use 数据库名称";
        pRecord = pConnection->Execute(temp1.c_str(),&vAffected, adCmdText);//执行语句
        string temp2="select * from 表名";
        pRecord = pConnection->Execute(temp2.c_str(), &vAffected, adCmdText);
        while (!pRecord->adoEOF)//得到查询的数据
        {
            //查询所需要的列
            vAffected=pRecord->GetCollect(列名称); 
            if(vAffected.vt!=VT_NULL) 
            data.number=(LPCSTR)_bstr_t(vAffected); //得到所得行列的内容
            //下一条原始内容
            pRecord->MoveNext();
         }
         pRecord->Close();
         pConnection->Close();
    }
    else//连接失败
    {
        printf_s("ADO加载失败。\n");
    }
    CoUninitialize();//释放,对应初始化
}
catch (_com_error e)//错误捕捉
{
    cout << e.Description() << endl
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值