我寫了一個字帖(/ COPY)程序具有該接口:RPG - 傳遞DS作爲參數傳遞給程序
DCL-PI *N VARCHAR(5000);
FILE_NAME CHAR(10) CONST;
DS_OLD VARCHAR(5000) CONST;
DS_NEW VARCHAR(5000) CONST;
END-PI;
此過程由本示例程序調用。 FILE_DS_ *是具有PFFILE定義的外部DS。
EXEC SQL SELECT * INTO :FILE_DS_OLD FROM PFFILE FETCH FIRST 1 ROW ONLY;
FILE_DS_NEW = FILE_DS_OLD;
FILE_DS_NEW.MYFIELD = 'MODIFIED';
RESULT = MYPROC('PFFILE':FILE_DS_OLD:FILE_DS_NEW);
我修改字段定義爲VARCHAR其原始值,例如:
'PEN IS ON THE TABLE'
奇怪的是,在我有程序的入口點在FILE_DS_NEW DS上獲得此值:
'MODIFIEDN THE TABLE'
我發瘋了,但找不到原因!任何想法?
DS是如何定義的:
D FILE_DS_OLD E DS EXTNAME(PFFILE) QUALIFIED INZ
D FILE_DS_NEW E DS EXTNAME(PFFILE) QUALIFIED INZ
顯示DS的定義 – Charles
@Charles他們剛剛關閉了系統。明天早上我會添加它!你有什麼線索嗎?有問題的字段應該用VARYING關鍵字定義爲字符。這是一個DDS物理文件,不需要SQL: – LppEdd
@Charles如果你的意思是本地數據結構,我添加了定義。 – LppEdd