BOF和EOF

       在做机房的时候出现了一个错误,但是从头到尾都没有报过错,直到第一次验项目的时候,才被师父发现这个问题。比如说在注册一个新用户的时候,所有的数据都输入好,点击存盘,会显示成功,但是在数据库里却找不到这一数据,我开始怀疑自己没有连接上数据库,于是从配置ODBC开始找错,一直到模块的连接数据库的代码,都没有找到,怀疑人生ing~后来终于在小伙伴的帮助下,找到了错误所在的位置。


       没错,一开始我写的代码是“Ifmrc.EOF=true then”,这就导致了根本找不到数据集中的数据。所以今天我们就来谈一谈BOF和EOF。

       BOF是什么呢?指示当前记录位置位于Recordset对象的第一个记录之前。EOF是什么呢?指示当前记录位置位于Recordset对象的最后一个记录之后。我可能说不明白,于是画了一张图,有点辣眼睛,慎看!

       这样就清楚很多了~当我们使用ADO连接数据库的时候,数据库将查询结果返回到查询端,在查询端的内存里面就会有一个列表,这个列表存放的就是查询的结果,也就是数据集。在我们机房的模块中的rst就是表示这个数据集。BOF表示rst当前的指针是指在了数据集的前面,比如数据集里面有编号1,2,3,4,四条记录,但是rst指向的编号是-1,这样也就是BOF的情况啦~~同理,当指针指向5的时候,而第五条记录不存在,这样就是EOF的情况啦~~

       如果同时产生了BOF 和EOF的情况,也就说rst的指针又在上界之外,也在下界之外,这种情况就是说明这个数据集是空的。

       出了一次错之后对BOF和EOF的理解就更加深刻了,以上就是我的理解了,一些官方的关于BOF和EOF的说法没有怎么说,感觉有点晦涩,想知道更多的小伙伴就自己问度娘咯~~

猜你喜欢

转载自blog.csdn.net/zenny009/article/details/79313090
EOF