|
> From: Joep Beckeringh > > BTW, while I was wondering why you were complicating things with pointers, > I noticed that according to the prototype your procedure returns a pointer > as well. But the rest of the coding suggests that is a typo. You're of course correct, Joep. Thanks for pointing that out. > In RPG parameter passing is by reference unless specified otherwise. Since > you can only specify CONST and VALUE, VALUE is the only way to not pass by > reference. That is why you need to pass a pointer by value (otherwise the > pointer to the pointer would be passed). True, but there's a slight problem with I/O. You can't read an externally described file into a field, so the following won't work: FMYFILE UF A E K DISK DmyDS E DS EXTNAME(MYFILE) BASED(pMYFILE) PReadMYFILE B export D PI N d Key like(MYKEY) value d Buffer likeds(myDS) C Key chain MYFILE Buffer C return %found(MYFILE) P e This syntax is invalid. The only way I could find to make it work requires an EVAL, which is what I'm trying to avoid: d Key like(MYKEY) value d Buffer likeds(myDS) C Key chain MYFILE C if %found C eval Buffer = myDS C endif C return %found(MYFILE) As far as I know, there's no way in RPG to specific a parameter to use the EXTNAME or LIKEREC parameter. Maybe you can do it somehow in V5R2, I don't know. Joe
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.