|
Have you considered making the RPG functions callable as UDFs?
My motto: "If your using a cursor, you're probably doing something
wrong." Sometimes there's no other choice, but for RPG (or other
procedural) programmers used to record at a time, cursors tend to be
their first choice and they shouldn't be.
Have you considered making the RPG functions callable as UDFs?
Then you could create a view that used the UDFs and simply return the
data from that.
Performance would be much better than your current process...inserting
a row at a time is a particularly poor performer...blocked inserts
would be better....especially when pair with blocked fetches...
My motto: "If your using a cursor, you're probably doing something
wrong." Sometimes there's no other choice, but for RPG (or other
procedural) programmers used to record at a time, cursors tend to be
their first choice and they shouldn't be.
Charles
On Tue, May 24, 2011 at 9:38 AM, Matt Lavinder
<mlavinder@xxxxxxxxxxxxxxxxxxx> wrote:
It is important to understand that everything is working at this pointso
my initial problem has been resoled. This is now a discussion of bestare
practices and recommendations. That being said...
Are you against writing the whole thing in the stored procedure?
I can give you a sample of where I'm doing the same thing.
I think that is what I am doing. You can send me an example of what you
talking about so I can see if your approach is different, but my storedpopulating
procedure creates the temporary table, populates it, and returns it all
within the same module. If you are talking about using an SQL procedure
instead of a System procedure, I can't do it that way. Part of
my temporary table is to "massage" the data a little using some existingRPG
logic. Here's my stored procedure in a nutshell:existing
1. Initialize module and create my temporary table
2. Use initial SQL query to pull the data I need.
3. Loop through that cursor. Format data in certain columns using
RPG procedures.list
4. Once a row is processed, use INSERT statement to add it to temporary
table.
5. Finally, do final query on temporary table and return result set.
That last step is where my issue was. When I ran in Run SQL Scripts, I
would run the procedure and it would return the wrong columns. But if I
queried the temporary table directly, it had been created correctly.
It also is worth mentioning that this procedure is being written to be
called by a PHP script.
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
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 IBM i / System i (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.