*loval and *hival are not SQL functions or RPG variables.
Try something like:
Else;
act1 = *loval;
act2 = *hival;
Endif;
Mike Krebs
-----Original Message-----
From: rpg400-l-bounces+mkrebs=milwaukeevalve.com@xxxxxxxxxxxx
[mailto:rpg400-l-bounces+mkrebs=milwaukeevalve.com@xxxxxxxxxxxx] On Behalf
Of Pete Helgren
Sent: Wednesday, September 05, 2007 4:50 PM
To: RPG programming on the AS400 / iSeries
Subject: LOVAL /HIVAL in SQL
I came across the trick of using the BETWEEN OPCODE in embedded SQL
statements and it looks like a great way to handle multiple variable select
statements. However, I can't get it to work, even with interactive SQL.
The interactive SQL looks like this:
select * from myfile where
myfield between '*LOVAL' and '*HIVAL'
myfield is a character field. If I don't use the single quotes, I get a
runtime error "Token * was not valid." If I do use the quotes it runs but I
get no output.
In my RPG I have (snippets):
D q S 2A Varying
D Inz('''')
/free
if actcode<> *blanks;
act1 = q + actcode + q;
act2 = q + actcode + q;
else;
act1 = '*LOVAL';
act2 = '*HIVAL';
ENDIF;
exec sql
select * from myfile where
myfield between act1 and act2;
That statement, with *LOVAL/*HIVAL should return me all the records, but it
returns nothing. What is the proper syntax? What have I missed?
Pete Helgren
--
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.