×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




As many has already mentioned, host variable cannot be used in the
dynamic sql statement. I personally prefer using static SQL. It is
much easier to understand and test/debug issue.

From what I can tell, it seems like the reason that you create the alias
is so that you can run the select statement on a specific member. If
this is the case, you could create this temporary alias in QTEMP using
static sql. See below:

* override to the desire member and library first
C eval cmdStr=
C 'OVRDBF FILE(OPBAL) ' +
C 'TOFILE(' + %trim(wlib820) + '/OPBAL) ' +
C 'MBR(' + %trim(wMbrFr) + ')'
C callp qcmdexc(cmdStr :%len(%trimr(cmdStr)))


C/exec sql
C+ drop alias qtemp/myOPBAL
C/end-exec

C/exec sql
C+ create alias qtemp/myOPBAL for OPBAL
C/end-exec

C/exec sql
C+ values(
C+ select b0bvva
C+ from qtemp/myOPBAL
C+ where
C+ b0aqcd = :hhstock and
C+ b0bycd = :witemcd and
C+ b0c8cg = :hhbrand)
C+ into :HHOPBAL
C/end-exec

C endsr

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of
ewart.desouza@xxxxxxxxxxx
Sent: Tuesday, March 25, 2008 6:18 AM
To: RPG programming on the AS400 / iSeries
Subject: SQL statement not working

Hello All,

I am trying to use an SQL statement to get the opening & closing balance
from two separate members in a file. The statement does not seem to
work.
When it is run in interactive SQL if works fine. I know there is
something to do with ':' but i just can't seem to find the fault.

I've only pasted the code for the opening balance as the Closing balance
code is similar.
// Get Opening Balance
wsqlstm = 'DROP ALIAS ' + %trim(wlib820)+'/'+ 'OpBal'; exsr PrepSQL;
exsr ExecSQL; wsqlstm = 'CREATE ALIAS ' + %trim(wLib820)+ '/opbal FOR
'+
%trim(wLibdta) + '/'+'STVATRP'+'(' + %trim(wMbrFr) +')'; exsr
PrepSQL; exsr ExecSQL; wsqlstm = 'select b0bvva into :hhopbal from ' +

%trim(wLib820)+ '/opbal '+
' where b0aqcd = :hhstock and '+
' b0bycd = :witemcd and '+
' b0c8cg = :hhbrand';
exsr PrepSQL;
exsr ExecSQL;
-----------------

/end-free
CSR PrepSQL begsr
c/Exec SQL Prepare SqlStmt from :wsqlstm c/End-Exec
C endsr
CSR ExecSQL begsr
c/Exec SQL execute SqlStmt
c/End-Exec
C endsr

-----------------

Is the statement in bold correct ??

Thanks & best regards
Ewart
--
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-2026 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.