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


  • Subject: Re: Why is there no value in GH0100?
  • From: boldt@xxxxxxxxxx
  • Date: Wed, 2 Feb 2000 12:22:41 -0500



Rob wrote:
>At the last calc spec shown the debugger shows a value
>for QUSRTVUSP but no value for GH0100.  Why?
>
>...
>D* Retrieve from a user space.
>D QUSRTVUS        PR                  EXTPGM('QUSRTVUS')
>D  Spc_Lib                      20A   CONST
>D  Start                        10i 0 CONST
>D  Length                       10i 0 CONST
>D  DataRead                  32765A   VARYING OPTIONS(*VARSIZE)
>D  qusrtvusEr                         LIKE(ERRC0100)
>...
>D QUSRTVUSP       S          32765A    VARYING
>...
> * List API - Generic Header Format 0100 from 'System API Reference'
>D GH0100          DS
>D  GHUser                       64A
>D  GHGHSize                     10i 0
>D  GHRelease                     4A
>D  GHFormat                      8A
>...
>D GH0100P         S                    LIKE(GH0100)
>...
>C                   CALLP     QUSRTVUS('JOBLIST   QTEMP     ':
>C                                       1:%len(GH0100P):QUSRTVUSP
>C                                       ERRC0100P)
>C                   eval      errc0100=errc0100p
>C                   if        exceptionId<>*blanks
>C                   return
>C                   endif
>C                   eval      GH0100=QUSRTVUSP
>
> * Initialize our offset to the offset of the list data.
>C                   eval      CurOffSet=GHListOff
>
>EVAL QUSRTVUSP :X
>   00000     00000000 00000000 00000000 00000000   - ................
>   00010     00000000 00000000 00000000 00000000   - ................
>   00020     00000000 00000000 00000000 00000000   - ................
>   00030     00000000 00000000 00000000 00000000   - ................
>   00040     00000080 F0F1F0F0 D1D6C2D3 F0F1F0F0   - ...Ø0100JOBL0100
>   00050     D8E4E2D3 D1D6C240 4040F1F0 F0F0F2F0   - QUSLJOB   100020
>   00060     F2F0F9F4 F9F4F1C3 00000228 000000C0   - 2094941C.......{
>...
>EVAL GH0100 :X
>   00000     40404040 40404040 40404040 40404040   -
>   00010     40404040 40404040 40404040 40404040   -
>   00020     40404040 40404040 40404040 40404040   -
>   00030     40404040 40404040 40404040 40404040   -
>   00040     40404040 40404040 40404040 40404040   -
>   00050     40404040 40404040 40404040 40404040   -
>   00060     40404040 40404040 40404040 40404040   -
>   00070     40404040 40404040 40404040 40404040   -
>   00080     40404040 40404040 40404040 40404040   -

The value of that user space is retrieved into variable
QUSRTVUSP, which is declared as a character varying
field.

The hex dump of QUSRTVUSP shows zeros in its first two
bytes.  This means that RPG considers the value of the
character varying field to be a string of length zero.
When assigned to a fixed length char field, the zero
length value is copied and then padded with blanks,
thus the all blanks value in GH0100.

The problem is that the QUSRTVUS interface returns a
fixed length char string as the 4th parameter, but you
lied to RPG by saying it returns a char varying value.

Cheers!  Hans

Hans Boldt, ILE RPG Development, IBM Toronto Lab, boldt@ca.ibm.com


+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---


As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.