标题:请教TonyDeng:有一段代码如何理介?
只看楼主
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
结帖率:79.3%
已结贴  问题点数:20 回复次数:8 
请教TonyDeng:有一段代码如何理介?
下面录取的一段代码:
set talk off
set safety off
 dele file ls.*
sele 2
  use yxk51
  REPLACE all yzrs with 0
 
INDEX ON yxdm to ls
  
  sele 1
  use zyk51
  REPLACE all lqdm with ''

(1) SCAN                 &&根据SCAN的要求先打开要扫描的zyk51,但(1)与(2)二句代码表示何意? 是对zyk51还是对yxk51扫描?
(2)  sele 2          && sele 2表示打开yxk51,它是对下面判断if---起作用,它与SEEK zyk51.zy11 有何关系?  对如何理介      
  (3) SEEK zyk51.zy11    &&索引查找,但没有对ZYK51没有进行索引(只有yxk51有索引),不符合根据SEEK命令要求, 如何理介? 符上二个表的图表
IF yzrs<jhrs
     repl yzrs with yzrs+1   
    endif
   SELECT 1
     repl lqdm with yxk51.yxdm   



 
搜索更多相关主题的帖子: safety safety 如何 如何 file file 
2011-09-13 11:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:20 
从前面看下来,SCAN之前最近的是SELECT 1,表明SCAN的工作区是1,即对zyk51进行循环。
进入循环体后的SELECT 2,是确定SEEK操作工作区的,即在yxk51中进行SEEK动作,搜索的是zyk51表中字段zy11的内容,此时,yxk51必须有索引,但zyk51不需要。

授人以渔,不授人以鱼。
2011-09-13 16:02
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
根据SEEK命令的可要求:只能在索引过的表中使用 seek 命令,并且只能搜索索引关键字。可以yxk51中用seek命令(因它索引过了),但zyk51表中字段zy11的内容不是索引关键字怎么可用

<进入循环体后的SELECT 2,是确定SEEK操作工作区的,即在yxk51中进行SEEK动作,搜索的是zyk51表中字段zy11的内容,此时,yxk51必须有索引,但zyk51不需要>。 此句还是不理介?
2011-09-14 16:34
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
根据SEEK命令的可要求:只能在索引过的表中使用 seek 命令,并且只能搜索索引关键字。可以yxk51中用seek命令(因它索引过了),但zyk51表中字段zy11的内容不是索引关键字怎么可用

<进入循环体后的SELECT 2,是确定SEEK操作工作区的,即在yxk51中进行SEEK动作,搜索的是zyk51表中字段zy11的内容,此时,yxk51必须有索引,但zyk51不需要>。 此句还是不理介?
2011-09-14 16:35
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
要的是zy11的值,是要在yxk51中找(当前索引关键)字段值等于zy11值的那条记录。

比如,对学生表,按"学号"索引,现在在成绩表中查学号为"123"的某个学生的姓名,就可以在学生表中SEEK 成绩表.学号。因为成绩表的当前记录成绩表.学号="123",所以这条语句其实是SEEK "123"。明白没有?

授人以渔,不授人以鱼。
2011-09-14 16:50
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
用你1楼的数据说吧:把记录指针移到zyk51的"倪诗韵"那里,那时有zy11="02",然后在yx51数据库中进行搜索SEEK zyk51.zy11,就是SEEK "02",表示查找字段值为"02"的记录;因为yx51已经按xxdm进行索引,所以SEEK查的是yx51中xxdm字段值为"02"的记录,则指针移到yx51的第二条记录上。

如果zyk51的指针在"林叶"上,则zyk51.zy11="01",查找结果就是yx51的指针移到xxdm="01"的那条记录上。

[ 本帖最后由 TonyDeng 于 2011-9-14 16:58 编辑 ]

授人以渔,不授人以鱼。
2011-09-14 16:56
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
谢谢了,现在搞明白了。介释的一目了然了。
2011-09-14 17:11
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
你也做招生?

授人以渔,不授人以鱼。
2011-09-14 22:06
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1519
专家分:174
注 册:2006-6-3
得分:0 
是呀!以后多多关照!
2011-09-16 10:18



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




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

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