我使用的是CRecordset类,在循环取数据时经常会出现无效的游标错误,这个错误是在异常里捕捉到的,我经过调试发现是在MoveNext时出现的,但是我的代码是判断了IsBOF和IsEOF的。后来我看帮助文档里有这么一句话:
if you have scrolled past the end of the recordset, IsEOF will return nonzero; a subsequent call to MoveNext would throw an exception.
就是说我超过了表的最后一条记录后,IsEOF会返回非0值,接下来再调用MoveNext就会出现异常。
这究竟是怎么造成的呢?大家帮忙看看我的伪代码:
TRY
{
if (!rs.IsBoF())
rs.MoveFirst();while(!rs.IsEoF())
{
dosomething...
rs.MoveNext();
}
}
CATCH(CDBException* e)
{
e->ReportError();
}
if you have scrolled past the end of the recordset, IsEOF will return nonzero; a subsequent call to MoveNext would throw an exception.
就是说我超过了表的最后一条记录后,IsEOF会返回非0值,接下来再调用MoveNext就会出现异常。
这究竟是怎么造成的呢?大家帮忙看看我的伪代码:
TRY
{
if (!rs.IsBoF())
rs.MoveFirst();while(!rs.IsEoF())
{
dosomething...
rs.MoveNext();
}
}
CATCH(CDBException* e)
{
e->ReportError();
}
return;
// The recordset is empty// Scroll to the end of the recordset, past
// the last record, so no record is current
while ( !rsCustSet.IsEOF( ) )
rsCustSet.MoveNext( );
---------书后面不是有延伸阅读么