|
Nathan,--
I had not considered an SQL CLI approach. I too am a little wary of
SQLRPGLE. I hate stepping into the pre-compiled code.
Had not considered the view approach either. The process is very simple.
For index=1 To 300
Chain (index) SQLStmtFile
Exec sql execute immediate: SQLStmt // each stmt joins 4 files
in a different way
EndFor
The system performs a new open for each of the 4 files and every
iteration. But since the entire iteration completes in 4 secs then I
guess the system knows what it's about.
Peter
-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of
Nathan Andelin
Sent: Tuesday, 8 July 2014 6:49 a.m.
To: RPG programming on the IBM i (AS/400 and iSeries)
Subject: Re: embedded SQL loop leaves multiple files open
Peter,
Years ago, I wrote high-level wrappers around IBM's SQL CLI
procedures, which today supports 99.9% of our SQL interface
requirements. I never really got into using SQLRPGLE interfaces much,
which seem somewhat clunky to me in comparison; That might just be
personal preference. One nice thing about the SQL CLI approach is that
you have full control over the open, navigation, and close of SQL
result sets via program logic. Have you ever considered something like that?
I don't know what you mean by a program running 300 SQL statements and
generating 300 values. You say the program joins only 4 DB tables.
Couldn't you just create an SQL View joining the 4 tables, then
refresh the View 300 times using different "where" clause criteria?
Seems like SQL CLI could handle that very easily with very readable code.
We always run SQL CLI interfaces using "server" mode, where the
statements (open, navigation, close, etc.) run in an instance of one
of the QSQLSVR prestart jobs, rather than the Job which uses the
result sets. SQL CLI appears to use shared memory for communicating
with Jobs which use the result sets.
Nathan.
--
This is the RPG programming on the IBM i (AS/400 and 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 correspondence is for the named person's use only. It may contain
confidential or legally privileged information, or both. No
confidentiality or privilege is waived or lost by any mistransmission.
If you receive this correspondence in error, please immediately delete
it from your system and notify the sender. You must not disclose, copy
or rely on any part of this correspondence if you are not the intended
recipient.
Any views expressed in this message are those of the individual
sender, except where the sender expressly, and with authority, states
them to be the views of Veda.
If you need assistance, please contact Veda on either :- Australia
customerassistance@xxxxxxxxxxx or New Zealand +64 9 367 6200
--
This is the RPG programming on the IBM i (AS/400 and 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-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.