|
Change your program to use SQLSTT. SQLCODE can sometimes be non-zero on
successful SQL statements.
Something like this (note this is for a multiple record fetch):
d Success c '00000'
d EmptySet c '02000'
When SQLStt = EmptySet;
// Fetch returned a good record set
When SQLStt = Success;
// Fetch records until end of file
DoW SQLStt = Success;
// Read through returned records
For RowCnt = 1 to SQLER3 by 1;
// ---------------------------------------
// Insert record processing logic here
// ---------------------------------------
// Move to next record
RtnDtaSet@ = RtnDtaSet@ + %Size(RtnDtaSet);
EndFor; // RowCnt = 1 to SQLER3 by 1
// If end of table reached exit loop
If SQLER5 = 100;
Leave;
EndIf;
Rick
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of Yivi
Sent: Friday, November 11, 2005 5:03 AM
To: RPG programming on the AS400 / iSeries
Subject: sql weirdness...
I have the following thing:
[...]
/END-FREE
* Declaración Cursor SQL ++++++++++++++++++++++++++++++
C/EXEC SQL DECLARE ALFOF2 CURSOR FOR
C+ SELECT * FROM IVAN/ALFOFGAN2
C+ WHERE AMBITO = 'C' AND
C+ SITUACION = 'E' AND
C+ RESP <> 'B'
C/END-EXEC
* Apertura Cursor SQL ++++++++++++++++++++++++++++++
C/EXEC SQL
C+ OPEN ALFOF2
C/END-EXEC
* Ejecución Cursor SQL +++++++++++++++++++++++++++++
C/EXEC SQL
C+ FETCH ALFOF2
C+ INTO :ALF2
C/END-EXEC
/FREE
dow SQLCODE = 0;
// do stuff. print some lines
/END-FREE
C/EXEC SQL
C+ FETCH ALFOF2
C+ INTO :ALF2
C/END-EXEC
/FREE
endDo;
[...]
The weird thing is that SQLCODE is set at 100, and the loop is not even
starting.
But, if I execute the SQL outside of the program I get about thirty rows, so
I expect SQLCODE should be 0 at that point.
Anyone has any clue about what am I doing wrong here? Lack of sleep and
Friday anxiety aren't helping much my detective skills...
Regards....
I.-
--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
Privileged and Confidential. This e-mail, and any attachments there to, is
intended only for use by the addressee(s) named herein and may contain
privileged or confidential information. If you have received this e-mail in
error, please notify me immediately by a return e-mail and delete this e-mail.
You are hereby notified that any dissemination, distribution or copying of this
e-mail and/or any attachments thereto, is strictly prohibited.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.