一直以来,以为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 方法将产生错误。