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
As an Amazon Associate we earn from qualifying purchases.