CoInitialize(NULL);
//初始化指针
_ConnectionPtr sqlsq=NULL;
HRESULT hr=sqlsq.CreateInstance(_uuidof(Connection));
if (FAILED(hr))
{
cout<<"_ConnectionPtr对象指针实例化失败!!"<<endl;
return 0;
}
else
{
try{
_bstr_t strConnection="Driver={sql server};server=127.0.0.1,1433;uid=sa;pwd=123456;database=test;";//初始化链接参数
sqlsq->Open(strConnection,"","",adModeUnknown);//执行连接
}
//发生连接错误
catch(_com_error &e)
{
cout<<e.Description()<<endl;
}
_RecordsetPtr m_pRecordset;
_ConnectionPtr m_pConnection;
if (FAILED(m_pRecordset.CreateInstance(_uuidof(Recordset))))
{
cout<<"记录集对象指针实例化失败!"<<endl;
return 0;
}
try{
m_pRecordset->Open(_variant_t("TEXT_Table"),_variant_t((IDispatch*)sqlsq),adOpenKeyset,adLockOptimistic,adCmdTable);
m_pConnection.CreateInstance(_uuidof(Connection));
//初始化Connertion指针
m_pRecordset.CreateInstance(_uuidof(Recordset));
//初始化Recordset指针
CString strsql="select * from TEXT_Table";
//在这里出的错
m_pRecordset=m_pConnection->Execute(_bstr_t(strsql),NULL,adCmdText);
while (!m_pRecordset->adoEOF)
{
CString temp=(TCHAR*)(_bstr_t)m_pRecordset->GetFields()->GetItem("name")->Value;
cout<<temp<<endl;
m_pRecordset->MoveNext();
}
}
catch(_com_error &e)
{
cout<<e.Description()<<endl;
}
}
sqlsq->Open(strConnection,"","",adModeUnknown);//执行连接
m_pRecordset->Open(_variant_t("TEXT_Table"),_variant_t((IDispatch*)sqlsq),adOpenKeyset,adLockOptimistic,adCmdTable);
这两行代码有一个没成功。
给你一个更简单的读数据库方法:
http://blog.csdn.net/passfuhao/article/details/76545332
直接使用别人写好的库类不更好?我有写好的,直接用就好,比较方便