记录集MoveNext()方法报错

0 投票
使用产品:supermap-iobjectsdotnet-10.0.1-18027-76100

操作系统:win10 x64

数据库:mysql 5.7

报错代码:Recordset.MoveNext();

报错内容:外部组件发生异常。

通过查询数据库发现,该表中有3515条记录,每次都在最后一条记录的时候报错。

而为什么最后一条记录我还在MoveNext呢?因为updateRecordset.RecordCount给我的数据是10452……

所以我根据10452这个数据在做循环,走到第3515条数据的时候,依然在MoveNext。

这里有两个问题:

1.记录集的RecordCount没有给我真实的记录数,导致我循环有误。

2.异常提示“外部组件发生异常”完全看不出问题所在,可以提示“已经移动至末端记录”么?不然问题很难排查。
4月 14 分类:  99次浏览 | 用户: 璐璐8889 才疏学浅 (15 分)
重新分类 4月 14 用户:邬袁凯

1个回答

0 投票
你好,首先RecordCount数是返回的数据集对应的记录数,你应该在idesktop里面打开这个数据集,右键浏览属性表,看下有多少行,这个值肯定是对的上的。

判断方法其实可以判断数据是否在最后一行,接口为Recordset.IsEOF,如果返回为true,就不要执行movenext,你也可以通过try catch捕获异常
4月 14 用户: 邬袁凯 名扬四海 (2,429 分)

Recordset.IsEOF,了解了,感谢

但是RecordCount真的有问题

这是软件里面的结果,和我使用sql查询的结果一致

...