我有一些代码可以遍历记录集( rs )的列。如果我包括或不包括rs.MoveFirst,那么代码的工作原理似乎是相同的。
如果您没有显式地包含.MoveFirst,那么它是隐式包含的吗?还是我遗漏了一个细微的差别?
发布于 2014-08-18 10:07:26
来自MSDN
打开记录集时,第一个记录是当前记录,BOF属性为False。如果记录集不包含记录,则BOF属性为True,并且没有当前记录。 如果使用MoveFirst或MoveLast时第一个或最后一个记录已经是当前记录,则当前记录不会更改。
基于此,您可以看到,在您的MoveFirst中有非零记录的场景中,RecordSet是多余的。
发布于 2014-08-18 10:07:45
.MoveFirst方法的使用几乎没有显着性差异。打开记录集时,编译器尝试加载整个记录集,但是在大型数据集上,它只加载最小记录,在处理过程中将加载完整记录集。但是,将默认的“游标”(本身)到第一个记录,不重要的记录已经返回多远。
只有在使用.MoveLast访问最后一条记录,然后使用.MoveFirst返回第一条记录时,性能上的差异才会发生。这将需要加载所有的记录,然后返回,这是当你将达到性能。
https://stackoverflow.com/questions/25360369
复制相似问题