× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Rory,

That's an interesting thought. It would be a challenge to account for
all of the variations.

I'm sure I'll be drawn and quartered for suggesting this, but wouldn't
it be easier to use something like a Java ArrayList for this instead of
trying to reinvent the wheel in RPG? Just a thought. I'm not an expert
on Java performance in RPG. Maybe it's even worse than embedded SQL.

Tom Armbruster

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Rory Hewitt
Sent: Monday, March 08, 2010 9:13 AM
To: RPG programming on the IBM i / System i
Subject: Re: AW: More on RPG style

Vern,

When you refer to a 'varying-parameter list', do you mean the ability to
have lots of parameters (in C, decalared with ..., as with print() and
similar fuinctions) or are you talking about overloading the same
function
to allow different parameter types?

As far as the former goes, it's easy enough to do - just define a
function
with 256 parameters (my @IN function only has 11) and make the last 254
of
then OPTIONS(*NOPASS). Sadly, of course, this means enormous
copybooks...

As far as the latter goes, I think OpDesc would allow overloading if you
have multiple different prototypes, but I haven't checked. More
tinkering is
on the (near) horizon!

Rory

On Mon, Mar 8, 2010 at 6:05 AM, Vern Hamberg <vhamberg@xxxxxxxxxxx>
wrote:

Personally I don't care for the linked list or vector solution - same
thing with an array. The second argument to the function has to be
populated outside the function call. Of course, that second parameter
could be a pointer by value, and then you pass whatever data types you
want to it. Not sure whether a pointer can hold operational descriptor
info for the underlying variable.

To "look" like the SQL equivalent of IN, I'd want a varying-parameter
list. This is pretty easy in C - is it called vararg? It's been too
long. But it is there. It's not simple, maybe not even possible, in
RPG,
since everything has to be explicitly declared.

Vern

Schmidt, Mihael wrote:
One could also use a linked list or vector (take any implementation,
f.
e. at www.rpgnextgen.com, www.tools400.de or www.bender-dv.de). Most
implementations have a procedure like list_contains(list :
search_argument).

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Terrence Enger
Sent: Friday, March 05, 2010 9:22 PM
To: RPG programming on the IBM i / System i
Subject: Re: AW: More on RPG style

On Thu, 2010-03-04 at 15:04 -0600, Vern Hamberg wrote:

Boy, I wonder if it weren't possible to write and IN() function in

RPG.

Maybe pass in the variable you are testing and have an array of the
values to test, use some way to vary the count, and return an

indicator.

Woohoo!!!


I think that the best you can do is a function working for one type,
and
only allowing up to some fixed maximum number of values to test.

Meanwhile, and expression like "0 < %lookup( ... )" can sometimes
approximate what you want. Of course, sometimes you would rather
have
the test values manifest in-line.

Cheers,
Terry.



--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.