Sure, the compiler "diagnoses" the mismatch, it
then goes further, doing you a "favor".
The compiler is not complaining because it will
be able to "convert" the key value, provided
the number of decimal digits (scale) in the key
defined in the program matches the key of
the file. Also, I think, the key defined in the
program must supply at least as many digits left
of the dp to "cover" the key of the file.
So, think of this as similar to what the compiler
does when adding numeric fields of mixed numeric
type, but with the additional restriction that
key "conversion, does not permit rounding...
If you are comparing flavors of RPG to other,
much more strongly typed languages, this
is pretty confusing. For fun, experiment
with moving (MOVE instruction) a character
field to a packed decimal....
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of jmmckee flinthills.com
Sent: Saturday, December 03, 2011 10:43 PM
To: rpg400-l@xxxxxxxxxxxx
Subject: KLIST question
Two externally described files. Both are keyed with two fields. One file has both fields as packed numeric. The other has signed numeric and packed numeric.
I thought the compiler would complain about the mismatch. I know it does if alphanumeric is used for numeric. But, the compiler did not complain. This applied to RPG III and RPG IV. At least not on the system I use.
First file is read and the two data fields are in the klist to read the second file.
My questions:
1) What happens when a setll/reade is performed with this mismatched field issue? No error is generated. I am wondering if some other record is returned, or if the mismatched fields are corrected internally, somehow.
2) Since the files are externally defined, shouldn't the compiler be able to diagnose the mismatch?
Thanks
John McKee
--
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.