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;
}
}
C++连接SqlServer数据库执行sql语句时出现“对象关闭时,不允许操作。”的错误!
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 穿女装的程序员 2017-08-04 10:10关注
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解决 无用评论 打赏 举报
悬赏问题
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料