|
I am running V5R1 so I have *read. I was playing around with the earlier question with some sample code and I have a question. How do you stop a read? This is how I implemented it: ... C IF RECKEY='yabba' C exsr fail C return C EndIf ... C Fail BEGSR C CALLP QMHSNDPM('CPF9898': C 'QCPFMSG QSYS ': C 'Not authorized to record.': C 300: C '*ESCAPE': C '*': C 1: C xyz#a: C errc0100) C ENDSR ... And my joblog looks like this when I do a RUNQRY QRYFILE(mylib/myfile) runqry qryfile(mylib/myfile) Not authorized to record.. Application error. CPF9898 unmonitored by TRIGGER at statement *N, instruction X'0000'. Error occurred in trigger program. Query cannot be run. See lower level messages. Query cannot be run. See lower level messages. I think this is user vicious. Granted - rpg would be easier to handle because you can check for %status, %error and what not - like I do with the following: FTESTFILE IF E K DISK INFDS(testfileds) F rename(testfile:testfiler) D testfileds DS D tf_FILE *FILE D tf_OPEN_IND 9 9N D tf_EOF_IND 10 10N D tf_STATUS *STATUS D tf_OPCODE *OPCODE D tf_ROUTINE *ROUTINE D tf_LIST_NUM 30 37 D tf_SPCL_STAT 38 42S 0 D tf_RECORD *RECORD D tf_MSGID 46 52 D tf_SCREEN *SIZE D tf_NLS_IN *INP D tf_NLS_OUT *OUT D tf_NLS_MODE *MODE d gohome s n inz(*off) d x s 10i 0 d y s like(x) /free setll(e) *loval testfile; read(e) testfile; // if tf_STATUS=1299 'Other I/O error detected' // this is probably a trigger error. dow not gohome; read(e) testfile; gohome=*off; // if you want to break out of the loop - use the debugger. // Below is a nice breakpoint to set. x=y; enddo; *inlr=*on; return; /end-free Rob Berendt -- "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." Benjamin Franklin
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.