Почему неиспользуемые поля файла имеют пустое значение?

У меня есть стол с именем

EQRECORDS

как показано ниже

 A          R REQ                                                                                              
  A            FNAME         10A                                                                                  
  A            LNAME         10A                                                                                  
  A          K FNAME                  

и запрограммируйте как ниже

fEQRECORDS if   e           k disk                
d uwvar2          s             10a   inz('ANKUR')
 /free                                            
  setll *loval req;                               
  reade uwvar2 req;                               
  dow not %eof(eqrecords) and not %error;         
    dsply lname;                                  
    reade uwvar2 req;                             
  enddo;                                          
  *inlr = *on;                                    
 /end-free    

При первом выполнении READE, если я хочу увидеть значение Fname, используя Eval. Почему это показано пустым?

Данные в таблице как показано ниже

**FNAME       LNAME** 
VIKASH      SHUKLA
VIKASH      SHUKLA
ANKUR       VERMA 
ANKUR       MEHTA 
VIKASH      MISHRA
VIKASH      GUPTA 
ANKUR       GUPTA 
BHASKAR     MISHRA
CHINTU            
BHUVI       GUPTA 

3 ответа

Я предполагаю, что вы используете 'eval' в отладчике. Если у вас есть OPTION(*NOUNREF) в H-spec или команда compile, то поля, на которые нет ссылок, недоступны в отладчике. Поместите OPTION(*UNREF) в вашу H-спецификацию, чтобы они были включены.

Я получил решение этой проблемы. Я использовал debug(*input) в H-spec и получил результат.

Попробуйте эту ссылку... Описание отладки (* вход)

Отправьте точный код, который дает вам проблему. Это должно работать:

 fEQRECORDS if   e           k disk
 d uwvar2          s             10a   inz('ANKUR')
 d message         s             50a   inz
  /free
   setll *loval req;
   reade uwvar2 req;
   dow not %eof(eqrecords) and not %error;
     message = %trimr(fname) + ' ' + lname;
     dsply message;
     reade uwvar2 req;
   enddo;
   *inlr = *on;
  /end-free
Другие вопросы по тегам