I debug the program and step by step watch it execute. The prepare statement has no errors. The Open has no errors. But the fetch fails to find the record I know it should. I copy/paste the sql statement into STRSQL and it finds the record. I don't understand why the two are behaving different.
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 smith5646midrange@xxxxxxxxx
Sent: Wednesday, December 11, 2019 5:59 PM
To: 'RPG programming on IBM i' <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: A problem in embedded SQL
There are a lot of responses to this that I didn't read and if someone has already mentioned this, I apologize for the repeat. I have seen this same weirdness when I forgot to close the cursor on a previous run but I don't remember any specifics like if I was in debug or anything like that. I also don't remember if the prepare or open failed, only that I got the SQLCOD =
100 on the fetch and I knew the data was there. When I logged off and back on and got my data on the next run.
-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Marvin Radding
Sent: Tuesday, December 10, 2019 6:47 PM
To: 'RPG programming on IBM i' <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: A problem in embedded SQL
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
As an Amazon Associate we earn from qualifying purchases.