亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2437 | 回復: 0
打印 上一主題 下一主題

OPNQRYF, OPNSCOP, SHARE問題探討 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-06-27 13:41 |只看該作者 |倒序瀏覽
我在項目中遇到了以下問題,希望大家來探討一下。

相關程序如下:
PTEST:

0001.00              PGM                        
0002.00              CALL       PGM(P111)     
0003.00              ENDPGM                              

P111:

0002.00              PGM                                                        
0018.00              DCL        VAR(&QRYSTR) TYPE(*CHAR) LEN(60) VALUE('   ')   
0018.01              DCL        VAR(&I) TYPE(*DEC) VALUE('1')                  
0018.02               CHGVAR     VAR(&QRYSTR) VALUE('111')                       
0057.00 NEXTLP: OVRDBF     FILE(FILE1)  SHARE(*YES) +                     
0058.00                           OVRSCOPE(*CALLLVL)                           
0061.00              OPNQRYF    FILE((FILE1)) OPTION(*INP *UPD) +               
0062.00                           QRYSLT('XCO *EQ %VALUES(' *CAT +              
0063.00                           &QRYSTR *CAT ')') KEYFLD(*FILE) +            
0064.00                           MAPFLD((F1  F2  *ZONED 3) (F2 +               
0065.00                           F1  *DEC 3)) OPNSCOPE(*JOB)                  
0066.00              CHGVAR     VAR(&QRYSTR) VALUE('   ')                       
0140.00              CALL       PGM(RPG01)                                      
0145.00              CLOF       OPNID(FILE1)                                    
0146.00              DLTOVR     FILE(FILE1) LVL(*)                              
0146.01              RCLRSC                                                     
0146.02              RCLACTGRP  ACTGRP(ATG0001)                                 
0146.03                                                                        
0146.04              MONMSG     MSGID(CPF1653)                                 
0146.05              CHGVAR     VAR(&QRYSTR) VALUE('222')                       
0146.03                                                                  
0146.04              MONMSG     MSGID(CPF1653)                           
0146.05              CHGVAR     VAR(&QRYSTR) VALUE('222')                 
0146.06              CHGVAR     VAR(&I) VALUE(&I + 1)                     
0146.07              IF         COND(&I *LT 3)  THEN(DO)                  
0146.08              GOTO       NEXTLP                                    
0146.09              ENDDO                                                
0205.00              ENDPGM                                       
        

RPG01:

0001.00 FFILE1    UP   E           K DISK                                                
0003.00 C                   CALL      'RPG02'                                          
0004.00 C                   EVAL      *INLR ='1'               

RPG02:

0001.00 FFILE1    IF     E           K DISK                                 
0002.00 DVAR1             S             6         
0002.01 DVAR2             S             6                       
0003.00 C                                                                  
0004.00 C                   EVAL      VAR1 = '111111'                  
0005.00 C     VAR1          CHAIN     FILE1                             30
0006.00 C                   IF        *IN30 = '0'                           
0007.00 C                   EVAL      VAR2 = VAR1                           
0008.00 C                   ENDIF                                          
0009.00 C                   RETURN                                         

CALL PTEST, 在執(zhí)行P111的第二個LOOP時報“Shared open not allowed for query.  ” 錯。
而把rpg02改成如下代碼時沒這個錯:
RPG02:

0001.00 FFILE1    IF     E           K DISK                                 
0002.00 DVAR1             S             6         
0002.01 DVAR2             S             6                       
0003.00 C                                          
0005.00 C                   IF        NOT(%OPEN(FILE1))     
0006.00 C                   OPEN      FILE1                 
0007.00 C                   ENDIF                                                   
0004.00 C                   EVAL      VAR1 = '111111'                  
0005.00 C     VAR1          CHAIN     FILE1                             30
0006.00 C                   IF        *IN30 = '0'                           
0007.00 C                   EVAL      VAR2 = VAR1                           
0008.00 C                   ENDIF                           
0012.00 C                   IF        %OPEN(FILE1)   
0013.00 C                   CLOSE     FILE1           
0014.00 C                   ENDIF                                    
0009.00 C                   RETURN                                         

這是有關OPNSCOP(*JOB), SHARE(*YES), 在RPG02中用到了OPNQRYF打開的文件,卻沒有顯著式的關閉,引起了報錯,盡管我找到了幾種解決的方法,就是在上面的一種,還有就是在OVRDBF時指定到其他文件,如FILE2,或在RPG02中用FILE1的邏輯文件而非直接用FILE1.但我還是不明白其中的真正原因,請大家來探討一下。

程序代碼可能不是很好,請見諒!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯網協會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP