Chinaunix首页 | 论坛 | 博客
  • 博客访问: 23651
  • 博文数量: 3
  • 博客积分: 74
  • 博客等级: 民兵
  • 技术积分: 60
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-05 14:35
文章分类
文章存档

2011年(3)

我的朋友

分类: 系统运维

2011-11-19 15:45:46

    想要随心所欲地操作数据文件,必须要学会移动文件的游标,因为游标指向哪条记录,文件的各字段就取哪条记录的对应值。我们常常使用Chain、Setll、Read来控制游标的移动,下面分析这三个指令的作用和区别。
     Chain 是根据键值来查询定位记录的,定位以后,就已经读取了定位的记录。用到的指示器有HI和LO,没有定位到记录打开HI,锁住记录打开LO。关于锁住记录,有一点需要注意:只有在以修改方式打开的文件中,才会锁住记录。也就是当以其它方式打开文件,锁记录和指示器LO,都没有了意义。如果没有查到与键值相等的记录,游标是不会移动的。
     Setll是根据键值来查询记录的,它只能查询不能定位,自然也不会锁住记录,查询后只是把游标移动到查询的记录之前。所以如果想读取查询的记录,还要执行read指令,可见功能和Chain差别很大。它常用的指示器有是EQ,当查询到记录就打开EQ。还有一点与Chain不同的是,如果没有查到与键值相等的记录,游标还是会根据查询键值移动到查询键值之前的。
     Read的功能比较简单,只是按照文件记录序列号的顺序往下读一条,具备锁记录功能。它常用的指示器有LO和EQ,锁住记录打开LO,没有读到记录打开EQ。
     如果觉得指示器的使用有点难以掌握,推荐使用内置函数%Found和%Eof。这两个函数也可以用来判断有没有成功定位或者读到记录,成功的话%Found返回1,失败的话%Eof返回1。
阅读(3886) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~