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.