免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5026 | 回复: 2
打印 上一主题 下一主题

请教CHAIN和READ的区别 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-12 16:22 |只看该作者 |倒序浏览
请问CHAIN和READ在使用上有什么区别?什么时候应该用CHAIN?什么时候应该用READ?什么时候可通用?   感谢各位赐教!!!

[ 本帖最后由 wht5618wht5618 于 2007-9-12 16:23 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-09-12 16:24 |只看该作者
简单说 CHAIN 是检索到 符合 KEY 值的第一笔记录


READ 是往下读一笔 记录

[ 本帖最后由 caomangyu 于 2007-9-13 08:53 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2007-09-13 11:34 |只看该作者
CHAIN {(N | E)} (Random Retrieval from a File)   按键值对文件记录进行查询定位
1.        基本语法:
举例,对逻辑文件PFFHSL1进行定位操作。逻辑文件PFFHSL1,是以FHS01为键值,文件记录格式名叫FMTFHS
Factory 1        Operation        Factory 2        Result                        HI        LO        EQ
FHS01        CHAIN        FMTFHS                                17          18                                                       
这个例子中,FHS01应该是一个与文件PFFHSL1中键值(FLD01)类型、长度都相等的一个字符型变量,或者字符。
Factory 2项中,要填文件的记录格式名,而不是文件名
HI指示器表示是否查询到相应记录,查询不成功时,打开HI指示器
LO指示器表示查询时,文件是否被锁。文件被锁时,打开LO指示器
也就是说:
*IN17=’0’,表示查询到了目标记录。
*IN17=’1’, *IN18=’0’,表示无相应的目标记录
*IN17=’1’, *IN18=’1’, 表示查询时,文件被锁(不确定有没有相应的目标记录)




READ {(N | E)} (Read a Record)       读取记录
1.        基本语法:
Factory 1        Operation        Factory 2        Result                        HI        LO        EQ
        READ        文件记录格式名                                45           46   
                                                                                                       READ后面跟的,必须是声明的文件记录格式名;
LO指示器表示锁表指示器,当在指定的时间(CHGPF,WAITRCD项可看到),需要读取的记录仍被锁,将会打开LO指示器,即*IN45=’1’;
                EQ指示器为是否读到指示器。当未读到任何记录时,打开EQ指示器,即*IN46=’1’
2.        当文件在程序中,是用只读的方式声明时,READ操作并不会造成锁表;
如果文件在程序中是用修改的方式声明,READ操作成功后,该记录被锁;直到执行解锁操作(UNLOCK,或UPDATE),或READ该文件的其它记录,才会解锁
如果文件是用修改的方式声明,但希望READ操作不锁表时,那么就用READ(N),即
Factory 1        Operation        Factory 2        Result                        HI        LO        EQ
        READ(N)        文件记录格式名                                45        46                                  
这样读文件,就不会锁记录,但是同时也不能修改记录。如果需要修改记录,那么在修改之前(包括对文件字段赋值之前),还必须再对该记录进行一次定位操作(比如CHAIN、READ语句均可)。也就是说,如果要修改记录,必须先锁住当前记录(很合理吧)
3.        当执行READ操作时,程序是根据游标当前在文件中所指向的位置,顺序读取下一条记录。关于游标是如何指向,还不是一个很简单的问题,所以将会在下一章“数据库相关知识”中具体讲解。
4.        执行READ操作时,允许声明的文件没有键值。(即PF文件)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP