_RecordsetPtr的open方法正确执行,但adoEOF出错,why?

xlever 2004-08-27 03:25:59
_RecordsetPtr pRecordset = NULL;
pRecordset.CreateInstance(__uuidof(Recordset));
CString strSql = GetInstallSQL(0);

try
{
HRESULT hr = pRecordset->Open((_bstr_t)strSql,
_variant_t((IDispatch *)g_Conn, true),
adOpenDynamic,
adLockOptimistic,
adCmdText);

if (SUCCEEDED(hr))
{
//hr = pRecordset->MoveFirst();
if (!(pRecordset->adoEOF)) // 执行到此句报错
{
return true;
}
}
if (pRecordset->State)
pRecordset->Close();
return false;
}
....

报错信息提示在“msado15.tli”文件的下列位置:
inline VARIANT_BOOL Recordset15::GetadoEOF ( ) {
VARIANT_BOOL _result = 0;
HRESULT _hr = get_adoEOF(&_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _result; // 错误标志指向这一行
}
请大家帮我看看是哪里有问题?
注:本来语句执行后返回的记录集应该有一条记录的。
...全文
427 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
内存泄漏 2004-08-30
  • 打赏
  • 举报
回复
。。。。。用try 捕获不到错误吗??
xlever 2004-08-30
  • 打赏
  • 举报
回复
怎么没人哩?
xlever 2004-08-27
  • 打赏
  • 举报
回复
不行啊,每个方法或属性的引用都是类似的异常:

inline VARIANT_BOOL Recordset15::GetBOF ( ) {
VARIANT_BOOL _result = 0;
HRESULT _hr = get_BOF(&_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _result; // 错误标志指向这一行
}

inline ADO_LONGPTR Recordset15::GetRecordCount ( ) {
ADO_LONGPTR _result;
HRESULT _hr = get_RecordCount(&_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _result; // 错误标志指向这一行
}

弹出的异常对话框内容是这样的:Install.exe 中的 0x77e6e592 处未处理的异常:Microsoft C++ exception: _com_error @ 0x0012ee04 。
Kudeet 2004-08-27
  • 打赏
  • 举报
回复
if (SUCCEEDED(hr))
{
if(pRecordset->GetRecordCount()!=0)
pRecordset->MoveFirst();
if (!pRecordset->adoEOF) // 执行到此句报错
{
return true;
}
}
bohut 2004-08-27
  • 打赏
  • 举报
回复
if(!pRecordset->BOF)
{
pRecordset->MoveFirst();

if(!pRecordset->adoEOF)
{
numen27 2004-08-27
  • 打赏
  • 举报
回复
你把
if (!(pRecordset->adoEOF)) // 执行到此句报错
{
return true;
}
改成

if(!(pRecordset->BOF && pRecordset->adoEOF))
{
if (!(pRecordset->adoEOF)) // 执行到此句报错
{
return true;
}

}
试试看

4,017

社区成员

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

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