Chinaunix

标题: 对数据区的操作的问题 [打印本页]

作者: nhxingliang    时间: 2005-08-18 16:43
标题: 对数据区的操作的问题
我在练习对数据区的操作的编程的时候遇到下面的问题,麻烦大家给分析一下

谢谢大家!!!!!!!!!!!

首先我在我的库里创建了数据区 如下:MYLIB/MYDAARA
我在网上找到如下程序:

*************** Beginning of data **********************
0001.00     I#DTA            DS                                      20                    
FMT J     .....I...........................PFromTo++DF i e l d+L1M1FrPlMnZr.
0002.00      I                                    1       8 CURDAT            
0003.00      I                                  11     16 CURTME            
0004.00     C                   *NAMVAR     DEFN MYDTAARA  #DTA     
0005.00     C                   *LOCK          IN#DTA                              
0006.00     C                                       TIME   DATTME 140               
0007.00     C                                        MOVE DATTME    CURDA
0008.00     C                                        MOVELDATTME    CURTME  
0009.00     C                                        OUT    #DTA                       
0010.00     C                                        UNLCK#DTA                        
0011.00     C                                        SETON                              LR  
    ****************** End of data***********************

可我在编译的时候系统给出如下信息:
QRG4005    :文件名或记录名未定义或无效

Qrg7030    :字段或指示符未定义

QRG1020  :写至数据区域返回码时出错,未记录编译状态.

我不知道那除了出错了? 麻烦大家给指点一下.


谢谢大家!!!!!!!!!!!!!
作者: fairyboy    时间: 2005-08-18 17:43
标题: 对数据区的操作的问题
你没有建立MYDTAARA 引起的,先建立
作者: nhxingliang    时间: 2005-08-19 10:05
标题: 对数据区的操作的问题
从编译的屏幕上看,主要是没有有定义#DTA和DATA两个字段.
可是我在我的库中已经定义了DATA数据区域.

1.jpg.gif (19.07 KB, 下载次数: 45)

1.jpg.gif

作者: pl421    时间: 2005-08-19 10:09
标题: 对数据区的操作的问题
看看库列表什么的.中文的400,爽.
作者: nhxingliang    时间: 2005-08-23 13:31
标题: 对数据区的操作的问题
我在编译之前先把库加入到了库列表.

然后在编译还是出现上面的情形呀?


郁闷中.......................................
作者: qingzhou    时间: 2005-08-23 17:08
标题: 对数据区的操作的问题
0004.00     C                   *NAMVAR     DEFN MYDTAARA  #DTA   
—>;
0004.00     C                   *DTAARA      DEFN MYDTAARA  #DTA
作者: kempzhang    时间: 2005-08-23 17:51
标题: 对数据区的操作的问题
[quote]原帖由 "qingzhou"]    DEFN MYDTAARA  #DTA[/quote 发表:

这两个参数qinzhou大哥能讲讲具体的差别吗?
作者: qingzhou    时间: 2005-08-23 17:55
标题: 对数据区的操作的问题
原帖由 "kempzhang" 发表:

这两个参数qinzhou大哥能讲讲具体的差别吗?

这几天我抽空整理成一篇文章、专讲DTAARA运用的,请等待。。。
作者: nhxingliang    时间: 2005-08-24 08:01
标题: 对数据区的操作的问题
谢谢了qingzhou大哥!!!!!!!!!

小弟期待着..................................
作者: ibmas400    时间: 2005-08-24 17:41
标题: 对数据区的操作的问题

  1.   列  . . . :       1  71           编辑                            LIB/QRPGSRC
  2. SEU==>;                                                                MYDTAARA
  3. FMT DS .....IDsname....NODsExt-file++.............OccrLen+....................
  4.         ******************** 数据开始 *****************************************
  5. 0001.00      I#DTA        DS                             20                     
  6. 0003.00      I                                        1   8 CURDAT              
  7. 0004.00      I                                       11  16 CURTME              
  8. 0005.00      C           *NAMVAR   DEFN MYDTAARA  #DTA                          
  9. 0006.00      C           *LOCK     IN   #DTA                                    
  10. 0007.00      C                     TIME           DATTME140                     
  11. 0008.00      C                     MOVE DATTME    CURDAT                        
  12. 0009.00      C                     MOVELDATTME    CURTME                        
  13. 0010.00      C                     OUT  #DTA                                    
  14. 0011.00      C                     UNLCK#DTA                                    
  15. 0012.00      C                     SETON                     LR                 
  16. 0013.00      C                     RETRN                                       
  17.         ******************** 数据结束 *****************************************
  18.                                                                                 
  19.                                                                                 
  20.                                                                                 
  21.                                                                                 
  22. F3= 退出   F4= 提示   F5= 刷新   F9= 检索   F10= 光标   F11= 切换              
  23. F16= 重复查找         F17= 重复更改       F24= 其余键                          
  24.                                          (C) COPYRIGHT IBM CORP. 1981, 2002.   
复制代码


我也本地测试了一下,先创建一个名为MYDTAARA的字符形的数据区,然后编译RPG,发现LZ有2个比较明显的错误:
1、“ C                     MOVE DATTME    CURDAT ”行应该是CURDAT,而不是CURDA;
2、程序最后一行少一句“ C                     RETRN ”;
但编译结果还是出现了一个30级别的*QRG7044的错误信息,也找了半天没找出原因。
错误信息如下:

  1.                                显示假脱机文件                                   
  2.   文件 . . . . . :   MYDTAARA                          页/行     2/23         
  3.   控制 . . . . . .                                     列         1 - 75        
  4.   寻找 . . . . . .                                                              
  5.   *...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+   
  6.        1300  C                     RETRN                                       
  7.              * * * * *    源结束    * *                  * * *                  
  8.              其他诊断消息                                                      
  9.   * 7044       700   DATTME 必须是数字字段,才能进行此操作。                    
  10.    5722WDS V5R2M0  020719                IBM RPG/400                           
  11.                             交叉引用                                            
  12.     字段引用:                                                                  
  13.            字段         属性      参考   ( M= 已修改  D= 已定义)              
  14.           *LOCK                600                                             
  15.           *NAMVAR              500                                             
  16.           #DTA        DS(20)   100D  500   600  1000  1100                     
  17.                       EXTNAME  MYDTAARA                                         
  18.           CURDAT      A(8)     300D  800M                                       
  19.           CURTME      A(6)     400D  900M                                       
  20.           DATTME      A(140)   700D  800   900                                 
  21.           MYDTAARA             500                                             
  22.                                                                         尚有 ...
  23. F3= 退出  F12= 取消    F19= 左    F20= 右     F24= 其余键                     
  24.                                                                                 
复制代码


哪位高人指点一下?
作者: nhxingliang    时间: 2005-08-25 10:29
标题: 对数据区的操作的问题
今天我又重新编译了一下,原程序没有错误.

但在最后给出了一条信息是:
QRG1020  :写至数据区域返回码时出错,未记录编译状态.

不知是什么原因,请高手指点一下,谢谢!!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2