_RecordsetPtr的open方法正确执行,但adoEOF出错,why?
_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; // 错误标志指向这一行
}
请大家帮我看看是哪里有问题?
注:本来语句执行后返回的记录集应该有一条记录的。