• 如何找出物理文件中损坏的记录


     如何找出物理文件中损坏的记录?
    解答 下面提供的CL源程序可以帮助您找出物理文件中损坏的记录,但是不支持其他文件
    系统中的文件类型,例如:/QNTS,/QOPT等。也不支持OS/400上其他类型的对象。

    如果您的操作系统版本在R420以上,则该程序需要一个逻辑文件来支持:
    /**********************************/
    R RECORD PFILE(QSYS/QADBXREF)
    DBXFIL
    DBXLIB
    DBXATR
    DBXRDL
    K DBXLIB
    K DBXFIL
    /**********************************/

    以下就是CL源程序,将该程序编译成可执行代码,就可以运行了。
    **********************************************************************
    ** 特别提示: ----------------------------------------------------- -**
    ** 请不要在生产机器上运行该程序!!请先在测试机器上充分测试后再运行!! -**
    **********************************************************************

    /* ACCEPT TWO PARAMETERS, THE RANGE OF LIBRARIES TO BE SCANNED ---- -*/
    /* DO NOT FORGET TO CHECK FILES STARTING WITH $,@, # -------------- -*/
    /* IF YOU WANT TO SCAN EVERYTHING, START WITH $ AND --------------- -*/
    /* END WITH Z999999999 -------------------------------------------- -*/

    /* WARNING: - A SMALL SPOOLED FILE WILL BE CREATED FOR EACH ----------*/
    /* FILE TESTED. IF NO ERRORS ARE FOUND, THE SPOOL */ /* FILE IS EMPTY.*/

    PGM PARM(&START &END)

    /* LIBRARY TO START WITH --------------------------------------------*/
    DCL VAR(&START) TYPE(*CHAR) LEN(10)

    /* LIBRARY TO STOP AFTER --------------------------------------------*/
    DCL VAR(&END) TYPE(*CHAR) LEN(10)
    DCL VAR(&NBRRCDS) TYPE(*DEC) LEN(6)
    DCLF FILE(CHECKLF) ALWNULL(*YES)

    CHGJOB LOG(4 30 *SECLVL) LOGCLPGM(*NO)
    OVRPRTF FILE(*PRTF) HOLD(*YES)

    /* POSITION IN THE FILE TO THE PARTIAL KEY LIBRARY NAME------------ */
    OVRDBF FILE(CHECKLF) POSITION(*KEYAE 1 RECORD + &START) OPNSCOPE(*JOB)
    RCF: RCVF
    MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(ENDP))
    CHGVAR VAR(&NBRRCDS) VALUE(32000 / &DBXRDL)
    OVRDBF FILE(&DBXFIL) OPNSCOPE(*JOB) SEQONLY(*YES + &NBRRCDS)
    IF COND(&DBXLIB > &END) THEN(GOTO CMDLBL(ENDP))
    IF COND(&DBXATR = 'PF' │ &DBXATR = 'TB') THEN(DO)
    IF COND(&DBXRDL > 4) THEN(DO)
    CPYF FROMFILE(&DBXLIB/&DBXFIL) TOFILE(*PRINT) +
    FROMMBR(*ALL) FROMRCD(1) INCCHAR(*RCD 1 + *EQ '[-')
    MONMSG MSGID(CPF0000)
    ENDDO
    ENDDO
    DLTOVR FILE(&DBXFIL)
    GOTO CMDLBL(RCF)
    ENDP:
    ENDPGM
  • 相关阅读:
    [模板] AC自动机
    U32670 小凯的数字 数学
    P1993 小K的农场 差分约束系统
    P2532 [AHOI2012]树屋阶梯 卡特兰数
    [模板] manacher
    Dynamic Rankings
    CQOI2015 任务查询系统
    [POI2014]KUR-Couriers
    JSOI2008 火星人
    ZJOI2006 书架
  • 原文地址:https://www.cnblogs.com/wildfish/p/1032032.html
Copyright © 2020-2023  润新知