一直以来,以为movefirst是将数据库游标移到记录最前,movelast是移到最后,
今天才发现原来跟movenext一样,也需要判断游标的位置,
若recordset->BOF为true时, movefirst, jet引擎会抛出_com_error.
显然movefirst是移到最前面嘛,jet为何不自己做这个事情呢?
下文的引文摘自MS ADO参考中的介绍:
使用 MovePrevious 方法将当前记录位置向后移动一个记录(向记录集的顶部)。Recordset 对象必须支持书签或向后游标移动;否则方法调用将产生错误。如果首记录是当前记录并且调用 MovePrevious 方法,则 ADO 将当前记录设置在 Recordset (BOF 为 True)的首记录之前。而 BOF 属性为 True 时向后移动将产生错误。如果 Recordset 对象不支持书签或向后游标移动,则 MovePrevious 方法将产生错误。
本文探讨了Jet引擎中MoveFirst方法的行为特点,特别是在游标位于记录集最前端(BOF为真)时调用该方法可能导致的问题。文章还介绍了MovePrevious方法的相关行为,并讨论了在不同情况下如何正确地使用这些方法。
567

被折叠的 条评论
为什么被折叠?



