Re: Why you shouldn't be afraid to use VARCHAR in RPGLE
Marco Facchinetti <marco.facchinetti-kthxv0ud/[email protected]>
| Newsgroups | gmane.comp.lang.as400.rpg |
|---|---|
| Message-ID | <CAMsgu4pYs4EdUapd0k8Q4ch=aXR6bFGmsMFaaQ7szphS6cL1Eg@mail.gmail.com> |
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.