та же структура - DDS против DDL - ID файла и уровня - PullRequest
1 голос
/ 26 марта 2019

В IBM i (as / 400) я хочу, чтобы одна и та же программа работала с файлами (таблицами), созданными DDL и DDS.Используя API "CALL qsys2.generate_sql", я смог преобразовать DDS в DLL.Однако после компиляции я получаю разные идентификаторы уровня файлов и членов.

Вот очень простой пример кода DDS и DLL ...

A          R TST_RC                                    
A            ORDER_NUM      8S 0       TEXT('ORFER_NO')    
A            ORDER_CUST    20A         TEXT('CUST NO')     

..

CREATE TABLE MYLIB.MYTABLE (                                               
   ORDER_NUM NUMERIC(8, 0) NOT NULL DEFAULT 0 , 
   ORDER_CUST CHAR(20) CCSID 37 NOT NULL DEFAULT '' )      
   RCDFMT TST_RC ;   
;                                                           

1 Ответ

4 голосов
/ 26 марта 2019

Файл и идентификатор уровня участника всегда будут разными. Это не проблема, но если форматы одинаковы, идентификатор уровня формата будет таким же. Именно идентификатор уровня формата вызывает проверку уровня. Таким образом, в вашем примере идентификаторы уровня файла и элемента отличаются, но два файла будут иметь одинаковый идентификатор уровня формата, то есть 332FE538F73DB в моей системе. Он должен даже соответствовать уровню форматирования в вашей системе. Таким образом, файлы могут использоваться взаимозаменяемо без проверки уровня.

Используя DSPFD, вот что вам нужно искать screenshot of DSPFD output

...