首先在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
}