ado 连接 SQL server ,UPdate表的时候出现 “对象关闭时,不允许操作”

仗剑_天涯 2016-11-07 05:42:42
代码如下:

pRecordset->Open( _variant_t( pMsgData->m_oCondition.m_pBuf ),
pConn.GetInterfacePtr(),
adOpenStatic,
adLockOptimistic,
adCmdText );

if ( pRecordset == NULL )
{
throw( 0);
}

if ( !pRecordset->adoEOF )
{
FieldPtr pField = pRecordset->Fields->GetItem( long(0) );
_variant_t varT = pField->Value;
pMsgData->m_oResult.m_nAction = varT.intVal;
}
}
catch(_com_error e )
{
if ( m_isDebug )
{
CString strConnError;

_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());

strConnError.Format( _T("\r\n错误: %08lx \r\n内容: %s \r\n描叙: %s \r\n来源: %s"),
e.Error(), e.ErrorMessage(), (LPCSTR)bstrSource, (LPCSTR)bstrDescription );

CFunc::WriteDebugLog( NULL, 0, 0, m_strDebugFileName, _T("错误! 打开数据库记录集, 写数据失败.") + strConnError );
}

sql语句是执行一个存储过程,记录集open已经成功了,然后在if ( !pRecordset->adoEOF )这个时候进error了,提示对象关闭时,不允许操作。奇怪的是,我查看表数据,其实已经更新了数据,
存储过程出错代码段:
	else if(@strCMDType = '005')	--若为参数
begin
update Table_Car
set strInfo = @strParamater
where strTEID = @strTEID
end

而且我执行了另一个 存储过程,操作的是同一个表,但是那个存储过程执行成功,这是什么问题啊
...全文
192 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
toodd 2019-03-01
  • 打赏
  • 举报
回复
亲,SET NOCOUNT ON加在哪里搞定的?我在用labview访问数据库,相同的操作遇到相同的问题。。。
  • 打赏
  • 举报
回复
加班党,苦逼
仗剑_天涯 2016-11-07
  • 打赏
  • 举报
回复
来个人我好结帖啊
仗剑_天涯 2016-11-07
  • 打赏
  • 举报
回复
http://blog.csdn.net/chinmusam/article/details/7744288
仗剑_天涯 2016-11-07
  • 打赏
  • 举报
回复
找了一天终于找到原因了,原来是少了这句话 SET NOCOUNT ON;

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧