|
could you show us the DSPEC where Wkinvmstp is defined...
I seem to recall that you couldn't use a constant variable in the Fetch n
rows. My sample test proved that it will not work.
However this does work.
D WK_ITEMST E DS OCCURS(100) EXTNAME(ITEMST)
D Max S 3 0 inz(100)
/free
Exec SQL
declare c1 cursor for
select * from itemst;
exec sql open c1;
exec sql fetch c1 for :max rows into :wk_itemst;
exec sql close c1;
*InLR = *On;
Return;
/End-free
This does not work.
D WK_ITEMST E DS OCCURS(MAX) EXTNAME(ITEMST)
D Max S 3 0 inz(100)
On Thu, Nov 8, 2012 at 12:40 PM, Michael Ryan <michaelrtr@xxxxxxxxx>
wrote:
Darn...was hoping you were on to something Kurt. Still receiving the sameTemplate
error. This is frustrating.
On Thu, Nov 8, 2012 at 11:35 AM, Anderson, Kurt <KAnderson@xxxxxxxxxxxx
wrote:
I should really keep track of all the RPG functions that the SQLwith
pre-compiler does not support. When I get a host variable not usable
message, I tend to go through a number of iterations to finally end up
a variable that will work.deal
A couple things I am aware of:
Host arrays can't have a dimension that's defined by a constant
"variable." Meaning Dim(10) will work, but Dim(MAX_ELEMENTS) will not
work if MAX_ELEMENTS is defined as a constant. I think it'll work if
defined as a variable, but I can't remember for sure.
Host variables/structures cannot be defined LIKE a Template
variable/structure (I might be leaping in logic here, the Templates I
with are all qualified data structures, so it could be that the
Selectlimitation has to do with qualified DS's only).
Host structures cannot be defined using LIKEREC. I've had to use
ExtName instead. (The SQL police might show up and say "Don't do
global*!" but I do this in file encapsulated service programs to load a
BRoche@xxxxxxxxxxxxxxxxxdata structure array that all of the Gets and Sets access.
Someone can correct me if I'm wrong on any of these. Or add to them.
-Kurt Anderson
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:
midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Michael Ryan
Sent: Thursday, November 08, 2012 10:21 AM
To: Midrange Systems Technical Discussion
Subject: Re: Embedded SQL Dynamic Selection
Hi Bob...yup, the MODS WkInvMstP is defined in the D specs, well before
any of the SQL statements. Thanks.
On Thu, Nov 8, 2012 at 10:28 AM, Bob P. Roche <
notwrote:
Make sure your variable is defined earlier in your code than the
placement of the SQL statement. Actually earlier in the code listing,
the fact that you program may hit the definition first while running
does not make a difference. Of course all your variables are defined
in the D specs so this may not be the issue.
From:
Michael Ryan <michaelrtr@xxxxxxxxx>
To:
Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx>,
Date:
11/08/2012 09:15 AM
Subject:
Re: Embedded SQL Dynamic Selection
Sent by:
midrange-l-bounces@xxxxxxxxxxxx
Thanks for looking at this Birgitta. I 'fat fingered' the error
message...it's SQL5011:
SQL5011: Position 55 Host structure array WKINVMSTP not defined or
tableusable
on this statement:
Fetch Next From C1 For :Maxrows Rows Into :Wkinvmstp;
Thanks!
On Thu, Nov 8, 2012 at 9:59 AM, Birgitta Hauser
<Hauser@xxxxxxxxxxxxxxx>wrote:
Error Message means SQL0511 - Not allowed for update.
Multiple row fetches cannot be used if you want to update your
stars."Update.directly using a cursor and specify the WHERE CURRENT OF Clause inusing
the update statement.
The error message has nothing to do with static and dynamic SQL or
host variables or parameter markers.
Multiple row fetches are also not allowed for dynamic SQL with
Mit freundlichen Grüßen / Best regards
Birgitta Hauser
"Shoot for the moon, even if you miss, you'll land among the
Ryan(Les
Brown)them
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not
training
and keeping them!"
-----Ursprüngliche Nachricht-----
Von: midrange-l-bounces@xxxxxxxxxxxx
[mailto:midrange-l-bounces@xxxxxxxxxxxx] Im Auftrag von Michael
...Gesendet: Thursday, 08.11 2012 15:21on
An: Midrange Systems Technical Discussion
Betreff: Embedded SQL Dynamic Selection
So folks...sorry to be a pest...but is the reason I'm getting an
SQL5011
this statement:
Fetch C1 For :Maxrows Rows Into :Wkinvmstp;
Is because my Declare looks like this:
Exec SQL
DECLARE C1 CURSOR FOR
Select * From INVMSTP
Where Imvnda Between :HostFld1 And :HostFld2 And
mailinghttp://archive.midrange.com/midrange-l.(a long statement)WHERE
and it needs to be parameter markers instead of host variables in
the
clause?list
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
mailing
To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please
take a moment to review the archives at
list
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
mailing
To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe,--
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please
take a moment to review the archives at
http://archive.midrange.com/midrange-l.
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
takelist To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please
mailinga moment to review the archives at
http://archive.midrange.com/midrange-l.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L)
takelist To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please
aa moment to review the archives at--
http://archive.midrange.com/midrange-l.
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take
http://archive.midrange.com/midrange-l.moment to review the archives at
listlist
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
To post a message email: MIDRANGE-L@xxxxxxxxxxxx--
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
To post a message email: MIDRANGE-L@xxxxxxxxxxxx--
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.
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.