这段代码为什么会抛出异常?急!

tigeroar 2003-06-30 03:22:41
数据库是用的SQL Server2000

_RecordsetPtr pRecordset;
CMainMonDoc* pDoc;
pDoc = GetDocument();

CString QueryStr;
HRESULT hr;

sprintf(str, "SELECT * FROM ScoreData WHERE Speed=%d ORDER BY OrderNo",
0,73);

_bstr_t bstrQuery( str );

_variant_t vNull;

vNull.vt = VT_ERROR;
vNull.scode = DISP_E_PARAMNOTFOUND;

int i = 0;
try
{
hr = pRecordset.CreateInstance(_uuidof(Recordset));
if(SUCCEEDED(hr))
{
pRecordset->PutRefActiveConnection(pDoc->m_pConnection);
hr = pRecordset->Open((_variant_t)bstrQuery, _variant_t((IDispatch *)pDoc->m_pConnection,true),
adOpenForwardOnly, adLockOptimistic, adCmdText);
while(!pRecordset->GetadoEOF())
{

pRecordset->PutCollect(L"Id", &(_variant_t((long)8)));
pRecordset->Update(vNull, vNull);

//pRecordset->Fields->GetItem(_variant_t("ID"))->Value = _variant_t((long)QP_ID[i]);
//pRecordset->Update();
i++;
pRecordset->MoveNext();
}
pRecordset->Close();
}
}

catch(_com_error &e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
TRACE("Exception thrown for classes generated by #import");
TRACE("\tCode=%08lx\n",e.Error());
TRACE("\tCode Meaning: %s\n",e.ErrorMessage());
TRACE("\tSource: %s\n", (LPCTSTR)bstrSource);
TRACE("\tDescription: %s\n", (LPCTSTR)bstrDescription);
}
catch(...)
{
TRACE("Unhandled Exception************************");
}
...全文
106 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tigeroar 2003-06-30
  • 打赏
  • 举报
回复
找到原因了,是因为里面有order by
tigeroar 2003-06-30
  • 打赏
  • 举报
回复
pRecordset->PutRefActiveConnection(pDoc->m_pConnection);
hr = pRecordset->Open((_variant_t)bstrQuery, vNull,
adOpenKeyset, adLockOptimistic, adCmdText);
tigeroar 2003-06-30
  • 打赏
  • 举报
回复
查询语句没问题.
Loaded 'C:\WINNT\system32\dbmslpcn.dll', no matching symbolic information found.
Loaded 'C:\Program Files\Common Files\System\ado\msadrh15.dll', no matching symbolic information found.
Warning: no message line prompt for ID 0x8013.
Warning: no message line prompt for ID 0x8015.
First-chance exception in MainMon.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.
Loaded 'C:\Program Files\Common Files\System\ado\msader15.dll', no matching symbolic information found.
Exception thrown for classes generated by #import Code=800a0cb3
Code Meaning: Unknown error 0x800A0CB3
Source: ADODB.Recordset
Description: 当前 Recordset 不支持更新。这可能是提供者限制的,也可能是选定的锁定类型限制的。
zosky 2003-06-30
  • 打赏
  • 举报
回复
你把查询语句现在查询分析器里运行一遍试试
zosky 2003-06-30
  • 打赏
  • 举报
回复
什么异常?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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