Re: Why you shouldn't be afraid to use VARCHAR in RPGLE

Brian Parkins <[email protected]>
Newsgroups gmane.comp.lang.as400.rpg
Message-ID <[email protected]>
No apology needed, Marco. I understand now - and of course it works!

DOUG: Try the approach that Marco describes (below).

Brian.

On 06/12/2025 15:17, Marco Facchinetti wrote:
> Hi Brian, sorry I was lazy. Writing in English is not my best talent.
>
> What I suggested is NOT how to eliminate the %RTRIM but how to handle the
> varchar definition when the basing var is in a record format.
>
> Since the compiler defines record formats using I spec and I specs are
> after D specs the value of the %LEN(dbfield) is not valid (RNF3320).
>
> Let's say the file with PHADDRESS1 is MyFile.
>
> dcl-s   w_address1      varchar(%len(phaddress1));   // RNF3320
>
> But if you add:
>
> Dcl-Ds wMyfile extname('MYFILE') End-Ds;
> dcl-s   w_address1      varchar(%len(phaddress1));
>
> the compiler will accept the varchar definition.
>
> Of course to have a value in w_address1 you have to
>
> chain MyFileKey MyFile;
> w_address1 = %rtrim(address1);
>
> Or, as suggested in another post, use address1 in a function with *TRIM.
>
> The advantage of using %len in the varchar string definition is that the
> maximum length is guaranteed even when the original field changes size.
> This allows older RPG programmers to use varchars without too much hassle
> or anxiety. :-)
>
> Best regards
> --
> Marco Facchinetti
>
> Mr S.r.l.
>
> Tel. 035 962885
> Cel. 393 9620498
>
> Skype: facchinettimarco
>
>
> Il giorno sab 6 dic 2025 alle ore 15:56 Brian Parkins <
> [email protected]> ha scritto:
>
>> Marco, can you provide an example? I can't see how that would work, but
>> I may be misunderstanding. Please prove me wrong.
>>
>> Brian.
>>
>> On 05/12/2025 23:04, Marco Facchinetti wrote:
>>> Just define e Ds based on the file prior of the varchar definition.
>>>
>>> HTH
>>> --
>>> Marco Facchinetti
>>>
>>> Mr S.r.l.
>>>
>>> Tel. 035 962885
>>> Cel. 393 9620498
>>>
>>> Skype: facchinettimarco
>>>
>>>
>>> Il giorno ven 5 dic 2025 alle ore 23:28 DEnglander--- via RPG400-L <
>>> [email protected]> ha scritto:
>>>
>>>> Does anyone know how to do something like this:
>>>>
>>>> I would like to define a %TRIMmed disk field that is CHAR(200)
>>>> [PHADDRESS1] as a VARCHAR and eliminate the %TRIMs.
>>>>
>>>> So as not to hardcode the size of the VARCHAR, can I define it as
>> VARCHAR
>>>> but based on the length of the CHAR(200) field? Something like:
>>>>
>>>> dcl-s   w_address1      varchar(%len(phaddress1));
>>>>
>>>>
>>>> Can that be done?
>>>>
>>>> Thank you,
>>>>
>>>> Doug
>>>>
>>>>
>>>>
>>>> "CONFIDENTIALITY NOTICE:  This e-mail transmission (and/or the
>> attachments
>>>> accompanying it) contain confidential information belonging to the
>> sender.
>>>> The information is intended only for the use of the intended
>> recipient.  If
>>>> you are not the intended recipient, you are hereby notified that any
>>>> disclosure, copying, distribution or the taking of any action in
>> reliance
>>>> on the contents of the information is strictly prohibited.  Any
>>>> unauthorized interception of this transmission is illegal under the law.
>>>> If you have received this transmission in error, please promptly notify
>> the
>>>> sender by reply e-mail, and then destroy all copies of the
>> transmission."
>>>> --
>>>> This is the RPG programming on IBM i (RPG400-L) mailing list
>>>> To post a message email: [email protected]
>>>> To subscribe, unsubscribe, or change list options,
>>>> visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
>>>> or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org
>>>> Before posting, please take a moment to review the archives
>>>> at https://archive.midrange.com/rpg400-l.
>>>>
>>>> Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription
>> related
>>>> questions.
>>>>
>>>>
>> --
>> This is the RPG programming on IBM i (RPG400-L) mailing list
>> To post a message email: [email protected]
>> To subscribe, unsubscribe, or change list options,
>> visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
>> or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org
>> Before posting, please take a moment to review the archives
>> at https://archive.midrange.com/rpg400-l.
>>
>> Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related
>> questions.
>>
>>

-- 
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: [email protected]
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request-+hD5IHI5Xscn3HwCXmMcX9BPR1lH4CV8@public.gmane.org
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support-FMtJrHiV//lnDLsaKlm4mFaTQe2KTcn/@public.gmane.org for any subscription related questions.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.