标题:发现一个神奇的现象
只看楼主
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
结帖率:96.77%
已结贴  问题点数:20 回复次数:7 
发现一个神奇的现象
1. 新建一游标:create cursor t1 (field1 i)
2. 此时,? bof() 返回 .t.,? eof() 返回 .t.,? recn()返回 1,?recc()返回 0
3. 执行 brow,并关闭之
4. 此时,? bof() 返回 .f.,? eof() 返回 .t.,? recn()返回 1,?recc()返回 0

在我的印象中,一直以为:对于一个空表,其 BOF()=.t.,EOF()=.t.,无论什么情况,都是如此。但是在 brow 后,bof()却返回.f.。这不知道各位坛友能否给出合理解释?
搜索更多相关主题的帖子: create cursor 新建 印象 
2016-02-19 11:20
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
执行 brow后,bof() 返回 .f.  只能说明指针不在数据库的第一条记录上
2016-02-19 11:32
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
BOF()用于测试表文件中的记录是否指向文件头,不是第一条记录。
2016-02-19 11:35
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
得分:0 
brow 一个空表并未移动记录指针,为何由bof()=.t.变为bof()=.f.?

泉城飞狐
2016-02-19 11:42
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:20 
BOF()和EOF()应该相对DBF文件指针,而不是DBF数据记录指针。
BOF()检测第一条记录之前,EOF()检测最后一条记录之后。
brow读数据记录时应该是移动了文件指针。
2016-02-19 16:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
以下是引用liuxingang28在2016-2-19 11:20:12的发言:

1. 新建一游标:create cursor t1 (field1 i)
2. 此时,? bof() 返回 .t.,? eof() 返回 .t.,? recn()返回 1,?recc()返回 0
3. 执行 brow,并关闭之
4. 此时,? bof() 返回 .f.,? eof() 返回 .t.,? recn()返回 1,?recc()返回 0

在我的印象中,一直以为:对于一个空表,其 BOF()=.t.,EOF()=.t.,无论什么情况,都是如此。但是在 brow 后,bof()却返回.f.。这不知道各位坛友能否给出合理解释?


browse把recno()設爲1了。

授人以渔,不授人以鱼。
2016-02-20 17:54
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
RECNO()返回 >0 or <0, 表中没有记录总是返回1。
2016-02-21 08:35
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
VFP6 中文版关于 RECNO()函数说明中是这样写的
如果记录指针所指的位置在表中第一个记录之前或者表中没有记录,那么 recno( ) 函数返回 1;如果表中没有记录,EOF( ) 函数总是返回“真” (.T.)。


坚守VFP最后的阵地
2021-03-08 17:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-461784-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.134191 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved