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

  免費注冊 查看新帖 |

Chinaunix

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

關(guān)于程序描述文件 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-03-23 17:01 |只看該作者 |倒序瀏覽
在rpg中可以這樣聲明文件,就是通常說的程序描述文件
其中splf文件是一個單字段的物理表。
我用CRTPF FILE(PTRLIB/SPLF) RCDLEN(132)   

     FSPLF    IF  F     132  3AI     5 DISK                     
     ISPLF    AA  01                                            
     I                                        5   7 W#KEY      
     I                                        8  21 W#DTA      

這個帶KEY的程序描述文件,能不能這樣用,
如果不能,那該如何使用這個文件。
如果可以該怎么用。比如用某個key值去reade,去chain。
望高人指點。

論壇徽章:
0
2 [報告]
發(fā)表于 2010-03-23 17:09 |只看該作者
下面的類似的情況我已經(jīng)測試過了。

dd.JPG (36.79 KB, 下載次數(shù): 43)

dd.JPG

論壇徽章:
0
3 [報告]
發(fā)表于 2010-03-23 17:19 |只看該作者
查了下guide其中有句話是這樣的:
An indexed file is a program-described DISK file whose access path is built on key
values. You must create the access path for an indexed file by using data
description specifications.

是不是我的那個聲明必須有DDS的支持啊。我的理解是不是正確的。請指正。

論壇徽章:
0
4 [報告]
發(fā)表于 2010-03-23 17:28 |只看該作者
比如有個表只有一個字段,如果想按照這個字段中間的某幾位為key讀取多條數(shù)據(jù)的話應(yīng)該怎么做。

論壇徽章:
0
5 [報告]
發(fā)表于 2010-03-24 08:54 |只看該作者
比如有個表只有一個字段,如果想按照這個字段中間的某幾位為key讀取多條數(shù)據(jù)的話應(yīng)該怎么做。
pantierui 發(fā)表于 2010-03-23 17:28



    這個只能用sqlrpgle來實現(xiàn)。

論壇徽章:
0
6 [報告]
發(fā)表于 2010-03-24 09:06 |只看該作者
這個只能用sqlrpgle來實現(xiàn)。
passthru 發(fā)表于 2010-03-24 08:54


謝謝。

論壇徽章:
0
7 [報告]
發(fā)表于 2010-03-24 09:06 |只看該作者
本帖最后由 passthru 于 2010-03-24 09:09 編輯
在rpg中可以這樣聲明文件,就是通常說的程序描述文件
其中splf文件是一個單字段的物理表。
我用CRTPF FIL ...
pantierui 發(fā)表于 2010-03-23 17:01



    程序描述如果用到key描述,就是充分利用外部由dds產(chǎn)生的LF文件如:

               R REC
                          FLDN
                          KFLD1
                          FLDN+1
                          KFLD2
                          KFLD3
                          ....
                      K  KFLD1
                      K  KFLD2
                      K  KFLD3
   這時如果用的KFLD1,假設(shè)這個KFLD1在LFF記錄位置為26,長度為10,描述如下:
  FSPLF    IF  F     132  3AI     10 DISK    KEYLOC(26)

   如果用到KFLD2與KFLD3的組合鍵值,假設(shè)KFLD2+KFLD3的長度為12,記錄位置30,描述如下:
  FSPLF    IF  F     132  3AI     12 DISK    KEYLOC(30)

論壇徽章:
0
8 [報告]
發(fā)表于 2010-03-24 09:22 |只看該作者
如果你想實現(xiàn)一樓的idea,可以這樣做,用一個你想需要的鍵值位置的PF-b,長度與你的一個字段的PF-a長度一樣。對PF-b生成一個LF,即你所需的keys的LF,把數(shù)據(jù)有PF-a導(dǎo)入到PF-b,就可以實現(xiàn)你想做的事了。

論壇徽章:
0
9 [報告]
發(fā)表于 2010-03-24 09:32 |只看該作者
這回對程序描述文件有了較為深刻的理解了。再次謝謝passthru的解答。

論壇徽章:
0
10 [報告]
發(fā)表于 2010-03-24 15:15 |只看該作者
本帖最后由 pantierui 于 2010-03-24 15:21 編輯

下面是SQLRPG程序,歡迎討論。
     ID@DTA       DS                                                               
     I                                        1 132 D#DATA                        
     I                                      133 135 D#KEY                          
     IW@DTA       DS                                                               
     I                                        1   4 W#BLK                          
     I                                        5   7 W#KEY                          
     I                                        8  20 W#DTA                          
     I                                       21 132 W#SPC                          
     **                                                                           
     C                     MOVEL'111'     ##KEY   3                                
     **                                                                           
     C/EXEC SQL                                                                    
     C+ DECLARE C1 CURSOR FOR                                                      
     C+ SELECT SPLF,SUBSTR(SPLF,5,3) AS KEY                                       
     C+ FROM PTRLIB/SPLF                                                           
     C+ WHERE SUBSTR(SPLF,5,3) = :##KEY                                            
     C+ ORDER BY KEY                                                               
     C/END-EXEC                                                                    
     **         
     C/EXEC SQL                                                
     C+ OPEN C1                                                
     C/END-EXEC                                                
     **                                                         
     C           LABF      TAG      
     C                     MOVEL*BLANK    D@DTA                              
     C/EXEC SQL                                                
     C+ FETCH C1 INTO : D@DTA                                    
     C/END-EXEC                                                
     **                                                         
     C           SQLCOD    IFEQ *ZERO                           
     C                     MOVELD#DATA    W@DTA                 
     C           W#KEY     DSPLY                                
     C           W#DTA     DSPLY                                
     C                     GOTO LABF                           
     C                     ENDIF                                
     **                                                         
     C/EXEC SQL                                                   
     C+ CLOSE C1                                                   
     C/END-EXEC                                          
     **                                                  
     C                     SETON                     LR  
     C                     RETRN
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP