Try the following:
D MyResult S 11P 2
D String S 256A Varying
D Expr S 256A Varying inz('2 + 2')
/Free
String = 'Values(' + Expr + ') into ?';
/Exec SQL Prepare DynSQL From :String;
/Exec SQL Execute DynSQL using :MyResult;
Dsply MyResult;
/End-Free
Mit freundlichen Grüßen / Best regards
Birgitta Hauser
"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training them
and keeping them!"
-----Ursprüngliche Nachricht-----
Von: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] Im
Auftrag von Dennis Lovelady
Gesendet: Tuesday, 25. May 2010 14:30
An: 'RPG programming on the IBM i / System i'
Betreff: Quick SQL expression evaluation
I am trying to write a procedure I thought would be extremely simple: a
short SQL evaluation program that would simply take an expression and return
the result of SQL operating on that expression. For a silly example:
Exec sql set :myResult = 2 + 2 ;
To minimize complexity, I am passing the '2 + 2' part as a string, so that
the meat of this very short procedure is:
Exec sql setl :myResult = :myExpression ;
But (and, yes, I know I should have expected this) SQL is seeing it as the
string "2 + 2" rather than a pair of values with an operator between them.
Is there an SQL verb/clause that informs the SQL processor that the
following is an expression rather than a string (such as with unix' "expr"
command)? Or is this just a pipe dream, not worth the effort?
Dennis E. Lovelady
AIM/Skype: delovelady MSN: fastcounter@xxxxxxxxxxxx
<
http://www.linkedin.com/in/dennislovelady>
www.linkedin.com/in/dennislovelady --
You can't have everything. Where would you put it?
As an Amazon Associate we earn from qualifying purchases.