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



A DS is one big chunk of memory carved up. It appears to me that you're
returning a smaller chunk into a bigger chunk so you're likely to corrupt
the bigger chunk's structure. To correct this, you'll have to "return" a
structure similar to KnowUsersDS from your GetUserIDsfromNova procedure.
That way, everything lines up correctly.





From: "Koester, Michael" <mkoester@xxxxxxxxxxxxx>
To: "RPG400-L@xxxxxxxxxxxx" <RPG400-L@xxxxxxxxxxxx>
Date: 06/24/2015 12:54 PM
Subject: varying subfield in array DS getting loaded with blanks?
Sent by: "RPG400-L" <rpg400-l-bounces@xxxxxxxxxxxx>



I have an array data structure that has some varchar subfields, initialized
with INZ(''). There is no space between the quotes, which appears to set
the length to 0 for all rows. That's what I want. All's cool.
I then call a procedure that gets some values for two of the four
subfields, and loads three rows with those values. That's cool too. What
isn't so cool is the two fields that should be untouched by the called
procedure get blank-filled, and I don't know why, or how best to prevent
that. I could spin through a for-loop and load the target DS from the
results of the called procedure, but I thought I might not have to.

Calling program defines the target ds as:

DCL-DS KnownUsersDS QUALIFIED DIM(64);
Domain CHAR(16);
UserID VARCHAR(32) INZ('');
ChildOf VARCHAR(32) INZ('');
IsArchived IND;
END-DS;

Called Procedure only retrieves values for "Domain" and "UserID", so it has
a ds defined as:

DCL-DS UserIDs QUALIFIED DIM(64);
Domain CHAR(16);
UserID VARCHAR(32) INZ('');
END-DS;

The UserIDs data structure is what is passed back to the caller, and gets
stuffed into the 4-subfield array data structure with:

KnownUsersDS = GetUserIDsFromNova(acct : phone : domainsDS);

After the call, all 64 rows of the ChildOf subfield get blanks (including
the length bytes). What I find curious is that the UserID subfield for the
61 unfilled rows remain empty with length = 0.

We're at v7.1 here.

So have I pushed my luck trying to load only two of four subfields by
making it the receiver of the call? (seeems to work except for trashing the
unused subfields).

Michael Koester
--
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.