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



Thanks Jon, the extra detail helps me get the difference between my DS and stand-alone
definitions and what happens as data passes to the API.

I've since changed to 10i 0 following your and Birgitta's suggestion.

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Jon Paris
Sent: Wednesday, October 15, 2014 8:57 AM
To: Rpg400 Rpg400-L
Subject: Re: Call QUSCRTUS fails using stand alone 4B 0 d spec

In order to match your first example you needed to define the B field as 9B 0 - not 4! When using from/to you are defining a length of 4 bytes - when using 4B you are telling the compiler to define a field that will hold 4 digits (2 bytes). That's why you see the value you expect in debug the debugger shows you the value of your 2 byte field - the API however is seeing the _four_ bytes starting with your two.

You should not really be using the B data type at all - ignore its use in examples - it is deprecated in current RPG and has been since back in the V4 days. Your standalone field should be defined as 10i.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com

On Oct 15, 2014, at 9:57 AM, Gary Thompson <gthompson@xxxxxxxxxxx> wrote:

V7R1
I have a question about how binary fields can/should be defined in RPGLE.

Starting with a good example from a post on CODE 400 by Jamief > Thank
You! < I was able to quickly use QUSCRTUS to create a user space.

As I developed the program I made changes, and, at a point, the
program failed to create the user space, with the job log showing:

CPF3C2C: Value 268435456 for size parameter is not valid.

The change that caused this was changing the size parameter for
QUSCRTDS from a DS to a stand-alone field:

d DS
d ds_IniSiz 1 4B 0 Initial Size bytes

D wk_IniSiz S 4B 0 Initial Size bytes

I use EVAL to set both field wk_IniSiz and ds_IniSiz = 4096.

Apparently, the difference between the two D Specs changes the value received by the API ?

With ds_IniSiz, the user space is successfully created.

With wk_IniSiz, the user space is not created and I get the 'Value 268435456' message in the job log.

Yet an EVAL of either field in debug returns 4096 ?
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(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.


--
This is the RPG programming on the IBM i (AS/400 and iSeries) (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.