Bernd's most recent post makes yet another important point, this one crucial, about the inadequacies of the program being examined.
It was never well conceived qua PL/I procedure, and it is now obsolete. It can perhaps be patched up; but my guess is that it should be rewritten in PL/I, which is better at dealing with both UNICODE and DB2 control blocks than, say, C. --jg On 9/30/12, Bernd Oppolzer <[email protected]> wrote: > Like others already mentioned, to get rid of the syntax errors, you will > have to > add a declaration like > > DCL P PTR; > > and you should remove STR from the DCL ... BUILTIN; > > But another idea or question: > > the program IMO tries to read some DBRMs (DB2 data base request modules), > extract some information from there and construct BIND JCL to do BINDs on > some particular DB2 subsystems or environments. > > Now my problem is: > > the DBRMs have been converted in the recent DB2 versions from EBCDIC > to Unicode. So I believe this approach the program uses will not work > anymore, > because the program expects to find the information in the DBRMs in > EBCDIC code. > > Please take a look at this, too. > > Kind regards > > Bernd > > > > Am 29.09.2012 19:09, schrieb John Gilmore: >> Mike Schwab wrote: >> >> <begin extract> >> DCL LLIB(10) CHAR(44) INIT(' '); >> Could have 10 blank literals seperated by commas? >> >> DCL DISP(20) FIXED BIN(15) INIT(0); >> Could have 20 zero literals seperated by commas? >> <end extract> >> >> String and coded-arithmetic initializations are somewhat different. >> Here, to initialize all of the elements of both arrays, write >> >> declare llib(20) character(44) initial((20)(1)' ') ; >> declare disp(10) fixed binary(15,0) initial((20)0) ; >> >> The first has three components: an element-repetition factor, a >> string-repetition factor, and a string value. Since padding on the >> right with blanks occurs anyway in character strings it is not >> strictly necessary to write it so: but a better, more explicit version >> of the first declaration would be >> >> declare llib(20) character(44) initial((20)(44)' ') ; >> >> in which the initial specification is in effect: initialize each of >> the 20 elements of this array with 44 instances of a single blank >> concatenated together. Or again one could write, >> >> declare llib(20) character(44) >> initial((20)(1)' ') /* >> 44 blanks */ ; >> >> But note that even here the string repetition factor must appear. >> >> The code as it stands initializes only the first element of each array. >> >> --jg >> >> ---------------------------------------------------------------------- >> For IBM-MAIN subscribe / signoff / archive access instructions, >> send email to [email protected] with the message: INFO IBM-MAIN >> > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
