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



And as Douglas said, I almost always use a dynamically prepared statement when I have likes. Something like this.
@Sql =
'select * from mpms' + scprac + '/mtrm where'
+ ' (tmtrcd like ''%<%'' or'
+ ' tmtrcd like ''%&%'' or'
+ ' tmtrcd like ''%>%'' or'
+ ' tmtrcd like ''%"%'' or'
+ ' tmtrcd like ''%''''%'') and'
+ ' tmtrty = ''C''';
exec sql prepare badqry from :@Sql;
exec sql Declare BadCsr scroll cursor for BadQry;
exec sql Open BadCsr;
exec sql Fetch Next from BadCsr into :@Mtrmds;
If Sqlcod = 0;
Dow Sqlcod = 0;

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of Kevin Bucknum
Sent: Wednesday, December 11, 2019 9:34 AM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: A problem in embedded SQL

Try this and see if it works. Like is weird in embedded sql.

myiccode = 'EAPP';
myccomm = '81925B';

exec sql;
SELECT ipol#
FROM commcmtp
join commitmp on ccomp=icomp
and ipol# = cpol#
and cseq = iseq
and iccode like trim(:myiccode) concat '%'
and crecid = 1
and ccomm like '%' concat trim(:myccomm) concat '%';

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of Marvin Radding
Sent: Wednesday, December 11, 2019 9:26 AM
To: 'RPG programming on IBM i' <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: A problem in embedded SQL

Alan,

I construct the sql statement, perform a prepare, and then open the cursor. When I do the fetch it fails to find the record. I copy the sql statement from the RPGLE program and paste it into STRSQL and it finds the record. I don't understand why there is a difference between the two.

Thanks,

Marvin
No trees were killed in the sending of this message, but a large number of electrons were terribly inconvenienced, traumatized, triggered, and crying for their safe spaces.

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of Alan Shore via RPG400-L
Sent: Wednesday, December 11, 2019 7:23 AM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Cc: Alan Shore <ashore@xxxxxxxx>
Subject: RE: A problem in embedded SQL

Hi Marvin

I looked at this e-mail thread, but I cannot determine If you run the program in debug mode and cut and paste the contents of the SQL statement into STRSQL - does that work?


Alan Shore
E-mail : ASHORE@xxxxxxxx
Phone [O] : (631) 200-5019
Phone [C] : (631) 880-8640
'If you're going through hell, keep going.'
Winston Churchill

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of Marvin Radding
Sent: Wednesday, December 11, 2019 10:20 AM
To: 'RPG programming on IBM i' <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: [EXTERNAL] RE: A problem in embedded SQL

Jean,

I do trim the fields. And the same sql statement that fails in the RPGLE program, works in STRSQL. The exact same statement.

Thanks,

Marvin
No trees were killed in the sending of this message, but a large number of electrons were terribly inconvenienced, traumatized, triggered, and crying for their safe spaces.

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of Jean-Marc DUVAL
Sent: Tuesday, December 10, 2019 11:15 PM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: A problem in embedded SQL

Hi,

When I use this, I trim the field :

myiccode = 'EAPP%';
myccomm = '%81925B%';

exec sql;
SELECT ipol#
FROM commcmtp
join commitmp on ccomp=icomp
and ipol# = cpol#
and cseq = iseq
and iccode like trim(:myiccode)
and crecid = 1
and ccomm like trim(:myccomm);

Cordialement,

Jean-Marc DUVAL

-----Message d'origine-----
De : RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> De la part de Charles Wilt Envoyé : mercredi 11 décembre 2019 01:13 À : RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx> Objet : Re: A problem in embedded SQL

[EXTERNAL MAIL]

Show the actual RPG code...

Assuming it looks like
myiccode = 'EAPP%';
myccomm = '%81925B%';

exec sql;
SELECT ipol#
FROM commcmtp
join commitmp on ccomp=icomp
and ipol# = cpol#
and cseq = iseq
and iccode like :myiccode
and crecid = 1
and ccomm like :myccomm;

Then the problems is likely that the variables are fixed length...resulting
in an actual search value of 'EAPP% '

Easiest fix, change the variables to varchar.
Alternatively, load '%' all the way to the end of the variables, 'EAPP%%%%%'

Charles

On Tue, Dec 10, 2019 at 4:47 PM Marvin Radding < marvin.radding@xxxxxxxxxxxxxxxxxxxxx> wrote:

I am working on a program that is supposed to return a data element
when the user requests it is using two parameters.

The problem is in the RPGLE (running under 7.1) the sql statement
returns EndOfData when I attempt to use the program with parameter
that I know is there. But if I take the sql statement and use
interactive sql, it works and selects the correct record.

I don't understand what the difference is between the two methods.

The sql statement is:

SELECT ipol#
FROM commcmtp
join commitmp on ccomp=icomp
and ipol# = cpol#
and cseq = iseq
and iccode like 'EAPP%'
and crecid = 1
and ccomm like '%81925B%'

In the RPGLE, it is a prepared statement that is okayed by the prepare
statement. It is okayed by the open statement. But the fetch statement
returns EndOfData.

Taking the same sql statement and executing it in interactive sql, it
works properly and returns the expected data element.

Can anyone give me a clue why it doesn't work in RPGLE?

Marvin

Notice: This e-mail transmission may contain information that is
proprietary, privileged and/or confidential and is intended
exclusively for the person(s) to whom it is addressed. This message
may also contain Protected Health Information (PHI) and must be
treated confidentially and handled in accordance with HIPAA and other federal and state privacy laws.
Any use, copying, retention or disclosure by any person other than the
intended recipient or the intended recipient's designees is strictly
prohibited. If you are not the intended recipient or their designee,
please notify the sender immediately and delete this e-mail (and any
accompanying attachments).
--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a
message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe,
or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com

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

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com
--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com
--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com

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

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com
--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com


[https://www.medtronsoftware.com/img/MedtronMinilogo.bmp] Kevin Bucknum
Senior Programmer Analyst
MEDDATA / MEDTRON
120 Innwood Drive
Covington LA 70433
Local: 985-893-2550
Toll Free: 877-893-2550
https://www.medtronsoftware.com



CONFIDENTIALITY NOTICE

This document and any accompanying this email transmission contain confidential information, belonging to the sender that is legally privileged. This information is intended only for the use of the individual or entity named above. The authorized recipient of this information is prohibited from disclosing this information to any other party and is required to destroy the information after its stated need has been fulfilled. If you are not the intended recipient, or the employee of agent responsible to deliver it to the intended recipient, you are hereby notified that any disclosure, copying, distribution or action taken in reliance on the contents of these documents is STRICTLY PROHIBITED. If you have received this email in error, please notify the sender immediately to arrange for return or destruction of these documents.
--
This is the RPG programming on IBM i (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com


[https://www.medtronsoftware.com/img/MedtronMinilogo.bmp] Kevin Bucknum
Senior Programmer Analyst
MEDDATA / MEDTRON
120 Innwood Drive
Covington LA 70433
Local: 985-893-2550
Toll Free: 877-893-2550
https://www.medtronsoftware.com



CONFIDENTIALITY NOTICE

This document and any accompanying this email transmission contain confidential information, belonging to the sender that is legally privileged. This information is intended only for the use of the individual or entity named above. The authorized recipient of this information is prohibited from disclosing this information to any other party and is required to destroy the information after its stated need has been fulfilled. If you are not the intended recipient, or the employee of agent responsible to deliver it to the intended recipient, you are hereby notified that any disclosure, copying, distribution or action taken in reliance on the contents of these documents is STRICTLY PROHIBITED. If you have received this email in error, please notify the sender immediately to arrange for return or destruction of these documents.

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.