DataSet Iterator 遍历、遍历之后的失效问题原创
17人赞赏了该文章
4471次浏览
编辑于2023年06月26日 10:11:24
创作不易,如果文章对您有帮助,请为我点击一个朴实无华的赞^_^,我会更有动力地更新文章。
1.使用DataSet过程中,如果需要遍历或者读取DataSet的数据,那么可以使用Iterator迭代器进行遍历
2.当Iterator迭代器 遍历完成之后,DataSet会调用close()方法,之后不允许再次遍历。如果此时把DataSet传递给报表的查询函数,会有如下报错,报表也不会显示响应的数据:
解决方案
在遍历之前调用copy()复制为另一个DataSet。
3.在源码中,可以看到迭代器遍历完成之后,是如何一步一步关闭DataSet的:
创建AutoCloseIterator
遍历完成之后调用close回调
最终调用realClose()关闭掉dataset
推荐阅读