× 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.



Paul,

There are a LOT of very questionable examples "on the net". You'll need to
pay close attention to the version of RPG the example uses, and not use
older techniques in newer code. I think the exmaple you found is antique
now.

Yes, you can do varfield = fixed_length_field (and the other way round), but
you'll end up with a variable length variable with the entire
fixed_length_field in it. If you do not want the trailing blanks, you can
use the %trimr() built-in function to eliminate them.

For example,

Say varfield is VARCHAR(9000) in your table, and fixed_length_field is 9000a

fixed_length_field = 'ABCDEFG'; // 7 characters, but really 7 characters +
8993 blanks.
varfield = fixed_length_field;
// right here %len(varfield) is 9000 and it contains 'ABCDEFG' + 8993
blanks.

varfield = %trimr( fixed_length_field );
// now %len( varfield ) = 7 and it contains 'ABCDEFG'

Now, even though the varfield says it is 7 bytes long, the storage to hold
all 9000 bytes is still really there, but RPG treast it as if it were not
and you normally do not need to consider it. For all intents and purposes
it is now a 7-byte variable until it is modified again.

Be careful when dealing with varying length data when leading or trailing
blanks ARE significant. IFS file names come to mind.

Anyway, a good way to experience the effects is to write yourself a little
test program with different kinds of variables and put data in them and see
what happens in debug.




On Tue, Feb 1, 2011 at 07:42, Charles Wilt <charles.wilt@xxxxxxxxx> wrote:

Paul,

You'd want to use %trim() when moving from fixed length to variable
length...
varfield = %trim(fixed_length_field) ;

I have no idea why anybody would show the DS method in RPGIV. Were
you by chance looking at an RPGIII example? The DS method is the only
way to handle variable length fields in RPGIII.

Charles

On Tue, Feb 1, 2011 at 3:10 AM, PAPWORTH Paul <Paul.PAPWORTH@xxxxxxxx>
wrote:

Charles

Why are you using a DS overlay to handle variable length external

fields instead of using RPGIV's native support of them?



Can I simply do a varfield = fixed_length_field ; ?

Why do I in examples on the net the overlay I used ?
--
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 ...

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.