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



Sorry, the code is more like this
So there's SQLCOD, SQLSTATE. and now SQLSTT. That's just great. IBM
recommends SQLSTATE, but I thought I'd get answers easier here.


DOW GetCommands ( ClientNumber );

more code...

ENDO


P GetCommands B

D PI N


D ClientNumber
LIKE ( DFN_CLTNO ) CONST


D wSql S 512
VARYING


D wCursorOpen S N
STATIC


/FREE


IF NOT wCursorOpen;
EXSR OpenCursor;
ENDIF;


EXEC SQL

FETCH NEXT FROM C1 INTO : GlobalDS;


IF SQLCOD <> 0;
EXEC SQL
CLOSE C1;
wCursorOpen= *OFF;
RETURN *OFF;
ENDIF;


RETURN *ON;







BEGSR OpenCursor;

wSql = 'SELECT command, etc 'FROM file, etc ' ;



EXEC SQL
PREPARE S1 FROM : wSql;


EXEC SQL
DECLARE C1 CURSOR FOR S1;


EXEC SQL
OPEN C1;


wCursorOpen= *ON;


ENDSR;

/END-FREE


P GetCommands E


----- Original Message -----
From: <rob@xxxxxxxxx>
To: "RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx>
Sent: Friday, November 02, 2007 4:34 PM
Subject: Re: Simple SQL FETCH


Question I have about this...
DOW GetClient ( ClientNumber );
more code...
ENDO
return only 1 row? If so, then why a cursor? This logic implies you are
passing a client number TO the subprocedure to get information based on
that particular client number. Or, does your open cursor logic also have
some control break logic? Like if the customer number changes close the
cursor and prepare a new statement?

If it doesn't have the control break then this wouldn't be as confusing:
DOW GetClient ();

In general, I like the technique.

I vary on sql code versus sql state. IBM seems to push SQL State as more
portable. There are a few cases where one sql state can mean more than
one sql code and the right sql code will tell you exactly what error
condition you are having. I think it also swings the other way.

Rob Berendt
--
Group Dekko Services, LLC
Dept 01.073
PO Box 2000
Dock 108
6928N 400E
Kendallville, IN 46755
http://www.dekko.com





"David Foxwell" <david.foxwell@xxxxxxxxx>
Sent by: rpg400-l-bounces+rob=dekko.com@xxxxxxxxxxxx
11/02/2007 11:22 AM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>


To
<rpg400-l@xxxxxxxxxxxx>
cc

Fax to

Subject
Simple SQL FETCH






Hi

We are all new to imbedded SQL.

I'm looking into the possibility of standardizing a simple loop using a
cursor. What do you think of this code?

Does anyone have any standard ways of dealing with SQL error codes ?

Should I be using SQLCOD or SQLSTATE and why?

My code :


DOW GetClient ( ClientNumber );

more code...

ENDO


P GetClient B

D PI N


D ClientNumber LIKE ( DFN_CLTNO ) CONST


D wSql S 512 VARYING


D wCursorOpen S N
STATIC


/FREE


IF NOT wCursorOpen;
EXSR OpenCursor;
ENDIF;


EXEC SQL

FETCH NEXT FROM C1 INTO : GlobalDS;


IF SQLCOD <> 0;
EXEC SQL
CLOSE C1;
wCursorOpen= *OFF;
RETURN *OFF;
ENDIF;


RETURN *ON;







BEGSR OpenCursor;

wSql = 'SELECT * 'FROM file, etc ' ;


EXEC SQL
PREPARE S1 FROM : wSql;


EXEC SQL
DECLARE C1 CURSOR FOR S1;


EXEC SQL
OPEN C1;


wCursorOpen= *ON;


ENDSR;

/END-FREE


P GetClient E

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


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





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
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.