• 操作vsam用sequential访问模式REWRITE数据


    因为在SEQUENTIAL访问模式下,只有I/O方式打开文件才能进行REWRITE操作,所以以下文件均用I/O方式打开。 

    FILE-CONTROL.                      
             SELECT VFILE ASSIGN TO VF  
             ORGANIZATION IS INDEXED    
             ACCESS MODE IS SEQUENTIAL  
             RECORD KEY IS VID          
             FILE STATUS IS FS1.        
     DATA DIVISION.                     
     FILE SECTION.                      
     FD VFILE.                          
     01 VREC.                           
        05 VID PIC X(4).                
        05 VINFO PIC X(76).             
     WORKING-STORAGE SECTION.           
     01 FS1 PIC 99.                     
     01 REC PIC X(80).                  
     01 FLAG PIC X.                       

    PROCEDURE DIVISION.                                    
             OPEN I-O VFILE.                                
             DISPLAY FS1.                                   
             MOVE 0444 TO VID.                              
             MOVE '0444D02APPLE' TO REC.                    
             START VFILE KEY IS = VID.                      
             READ VFILE  
             END-READ.                                      
             REWRITE VREC FROM REC                          
             END-REWRITE.                                   
             DISPLAY FS1.                                   
             IF FS1 = 00                                    
             THEN                                           
                  DISPLAY 'THE RECORD IS ', VREC            
             END-IF.                                        
             CLOSE VFILE.                                   
             STOP RUN.        

    总结

    SEQUENTIAL三步曲:

    1.start

    2.read(因为rewrite之前必须read,不然就返回码43,而要想read指定记录就需要先start定位到指定的位置上,所以……)

    3.rewrite……from……(from也是必须的,这是逻辑上的需要,相信聪明的童靴都会懂的) 或者 delete……                              

  • 相关阅读:
    虚拟化技术总览
    UNIX环境高级编程笔记之高级I/O
    UNIX环境高级编程笔记之线程
    UNIX环境高级编程笔记之进程控制
    UNIX环境高级编程笔记之进程环境
    mysql中如何删除表上的索引?删除索引?
    linux环境中如何删除文件的前n行?
    linux环境中iostat命令的安装,解决-bash: iostat: command not found问题
    linux环境中安装iotop命令,解决-bash: iotop: command not found问题
    mysql初始化时报错bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory的处理
  • 原文地址:https://www.cnblogs.com/mooncher/p/2746442.html
Copyright © 2020-2023  润新知