|
By the way, I did test this on a V5R3 machine and it works great:
d TestAry ds dim(25) qualified
d name 25a
d age 5i 0
d x s 5i 0
/free
for x=1 to %elem(TestAry);
TestAry(x).name='Fred';
TestAry(x).age=x+5;
ENDFOR;
/end-free
C/EXEC SQL
C+ insert into rob/thatfile
C+ 25 rows
C+ values (:testary)
C/END-EXEC
And this worked also:
x=5;
/end-free
C/EXEC SQL
C+ insert into rob/thatfile
C+ :x rows
C+ values (:testary)
C/END-EXEC
Be warned. I tried not setting x to 5 and the value of x at the sql time
was set to 26. Just a minor thing but don't assume that x is equal to 25
at the end of the FOR loop. If that's what you want then try:
x=%elem(TestAry);
Just prior to the INSERT.
Rob Berendt
--
Group Dekko Services, LLC
Dept 01.073
PO Box 2000
Dock 108
6928N 400E
Kendallville, IN 46755
http://www.dekko.com
"Wilt, Charles" <CWilt@xxxxxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
02/17/2005 09:10 AM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
To
"RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx>
cc
Subject
RE: Using Array Values in Insert Query ?
The better way of doing this would be to insert the entire block of rows
at once.
c/exec SQL
c+ insert into luqman/cont_item
c+ 25 rows values (:CITEMSTR)
c/end-exec
Note that your DS needs to be a Multiple Occurrence DS and not an array DS
(unless you are at v5r3 ???).
D CITEMSTR DS occurs(25)
D MCN2 15
D MSN 5I 0
D MACODE1 10
D MQTY1 5I 0
D MPRICE1 12 2
D MAMOUNT1 12 2
note the use of the OCCURS keyword to create a Multiple Occurrence DS
(MODS) as opposed to the use of DIM to create an array DS.
HTH,
Charles Wilt
iSeries Systems Administrator / Developer
Mitsubishi Electric Automotive America
ph: 513-573-4343
fax: 513-398-1121
> -----Original Message-----
> From: rpg400-l-bounces@xxxxxxxxxxxx
> [mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of Luqman
> Sent: Thursday, February 17, 2005 5:31 AM
> To: rpg400-l@xxxxxxxxxxxx
> Subject: Using Array Values in Insert Query ?
>
>
> How can I use the Array Values in Insert Query.
>
> I tried following but its giving error.
>
> 0138.04 C FOR Z=1 TO 5
> 0138.06 C/EXEC SQL
> 0138.07 C+ INSERT INTO LUQMAN/CONT_ITEM
> 0138.08 C+
> VALUES(:MCN2(Z),:MSN(Z),:MACODE1(Z),:MQTY1(Z),:MRATE1(Z),:MAMOUNT1(Z))
> 0138.09 C/END-EXEC
> 0138.10 C ENDFOR
>
> Best Regards,
>
> Luqman
>
>
>
>
> --
> 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.
>
>
--
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 mailing list archive is Copyright 1997-2025 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.