求助cobol-400中START STATEMENT 的使用-
(2011-12-23 01:11:04)
标签:
杂谈 |
求助cobol/400中START STATEMENT 的使用?START FILE1 KEY
>=X-FIELD OF FILE1
INVALIDKEY CONTINUE
END-START.
看不明白这个START是什么意思? 另外,在COBOL/400中是怎样检索物理数据文件的呢?最好能给出演示的代码!
谢谢!http://blog.chinaunix.net/u/20092/showart_269808.html回复 #2 pantierui 的帖子谢谢!非常感谢原帖由 kelvenlee 于 2007-8-16 08:24 发表 http://bbs.chinaunix.net/images/common/back.gif
ID DIVISION.
PROGRAM-ID. HELLO-WORD.
AUTHOR. LIGL.
ENVIRONMENT DIVISION.
SOURCE-COMP ...
这个和楼主说的start没有关系啊。应该这样改吧:
ID DIVISION.
PROGRAM-ID. HELLO-WORD.
AUTHOR. LIGL.
ENVIRONMENT DIVISION.
SOURCE-COMPUTER. IBM-AS400.
OBJECT-COMPUTER. IBM-AS400.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO PFNAME
ORGANIZATION IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD IN-FILE
RECORD CONTAINS 25 CHARACTERS.
01 IN-RECORD.
05 IN-NAME PIC X(25).
WORKING-STORAGE SECTION.
01 END-OF-FILE-FLAG PIC X.
PROCEDURE DIVISION.
MAINLINE.
PERFORM INITIALIZATION-ROUTINE.
PERFORM THE-LOOP
UNTIL END-OF-FILE-FLAG = 'Y'.
PERFORM EOJ-ROUTINE.
STOP RUN.
*
INITIALIZATION-ROUTINE.
OPEN INPUT IN-FILE.
MOVE 2 TO XX OF IN-FILE.
START IN-FILE KEY =XX OF IN-FILE ** XX为数据库IN-FILE中的板式换热器字段之一
INVALID CONTINUE.
THE -LOOP.
DISPLAY 'HELLO ' IN-NAME.
READ IN-FILE
AT END MOVE 'Y' TO END-OF-FILE-FLAG.
EOJ-ROUTINE.
CLOSE IN-FILE.
START 的作用是用来定位数据库的检索位置,这样在READ数据库的时候就可以丛这个位置开始往下读了,而不是从第一笔记录开始读。
注意一点:在用到START这个语句之前,必须指定一个KEY值。也就是下面这条MOVE语句:
MOVE 2 TO XX OF IN-FILE.
START IN-FILE KEY =XX OF IN-FILE...
这样通过START定位之后就会把数据库游标定位在XX = 2 的位置上。
[ 本帖最后由 july1732 于 2007-8-24 10:28 编辑 ]精辟呀
INVALIDKEY CONTINUE
END-START.
看不明白这个START是什么意思? 另外,在COBOL/400中是怎样检索物理数据文件的呢?最好能给出演示的代码!
谢谢!http://blog.chinaunix.net/u/20092/showart_269808.html回复 #2 pantierui 的帖子谢谢!非常感谢原帖由 kelvenlee 于 2007-8-16 08:24 发表 http://bbs.chinaunix.net/images/common/back.gif
ID DIVISION.
PROGRAM-ID. HELLO-WORD.
AUTHOR. LIGL.
ENVIRONMENT DIVISION.
SOURCE-COMP ...
这个和楼主说的start没有关系啊。应该这样改吧:
ID DIVISION.
PROGRAM-ID. HELLO-WORD.
AUTHOR. LIGL.
ENVIRONMENT DIVISION.
SOURCE-COMPUTER. IBM-AS400.
OBJECT-COMPUTER. IBM-AS400.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO PFNAME
ORGANIZATION IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD IN-FILE
RECORD CONTAINS 25 CHARACTERS.
01 IN-RECORD.
05 IN-NAME PIC X(25).
WORKING-STORAGE SECTION.
01 END-OF-FILE-FLAG PIC X.
PROCEDURE DIVISION.
MAINLINE.
PERFORM INITIALIZATION-ROUTINE.
PERFORM THE-LOOP
UNTIL END-OF-FILE-FLAG = 'Y'.
PERFORM EOJ-ROUTINE.
STOP RUN.
*
INITIALIZATION-ROUTINE.
OPEN INPUT IN-FILE.
MOVE 2 TO XX OF IN-FILE.
START IN-FILE KEY =XX OF IN-FILE ** XX为数据库IN-FILE中的板式换热器字段之一
INVALID CONTINUE.
THE -LOOP.
DISPLAY 'HELLO ' IN-NAME.
READ IN-FILE
AT END MOVE 'Y' TO END-OF-FILE-FLAG.
EOJ-ROUTINE.
CLOSE IN-FILE.
START 的作用是用来定位数据库的检索位置,这样在READ数据库的时候就可以丛这个位置开始往下读了,而不是从第一笔记录开始读。
注意一点:在用到START这个语句之前,必须指定一个KEY值。也就是下面这条MOVE语句:
MOVE 2 TO XX OF IN-FILE.
START IN-FILE KEY =XX OF IN-FILE...
这样通过START定位之后就会把数据库游标定位在XX = 2 的位置上。
[ 本帖最后由 july1732 于 2007-8-24 10:28 编辑 ]精辟呀