I prefer this method. I getting faster results with it.
Select TWS, TUSER, TTDTE
From tfile
Where :device in ('*ANY', TWS)
And :User in ('*ANY', TUSER);
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of darren@xxxxxxxxx
Sent: Thursday, August 11, 2011 1:28 PM
To: midrange-RPG RPG message board
Subject: Conditional SQL processing against host variables
Using something like the following statement, we take a pretty high
performance hit compared to writing multiple cursors for times when the
user has selected a wildcard (*ANY) as shown below. I suspect that the SQL
is actually looking for TUSER='*ANY' even though it will never find it, and
its not necessary. Is there a better way to condition this type of
operation? I'm aware of dynamic SQL, but its a bit of a pain for larger
statements.
/FREE
exec sql declare C1 cursor for
Select TWS
TUSER,
TTDTE
from TFILE
where (TWS = :Device or :Device = '*ANY')
And (TUser = :User or :User = '*ANY')
/END-FREE
--
This is the RPG programming on the IBM i / System i (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.
________________________________
Notice from Bob Evans Farms, Inc: This e-mail message, including any attachments, may contain confidential information that is intended only for the person or entity to which it is addressed. Any unauthorized review, use, disclosure or distribution is strictly prohibited. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message and any attachments.
As an Amazon Associate we earn from qualifying purchases.