Yep, Roger - and we need to pretty version.

SEQUEL does have Excel output from its views, and it's really quite fast. But it can't use an Excel template or an existing Excel workbook as a model, as SQL2JXL can - or more likely, the Java class over which it is built.

The RPG2SQL product I worked on at RJS just isn't fast enough for this stuff - it COULD use a model workbook, as I recall, maybe with some little effort - but speed is of the essence here - can't be taking hours to do this.

Scott's POI-based API is way way too slow. I look forward to the day he gets the XML-based one going - no Java calls need appear, methinks.


On 7/2/2014 3:45 PM, Roger Harman wrote:
Trying to "prettify" the result is a reason to move away from CSV.
But, I have a process that just took forever with a vendor product converting to XLS before running out of Java heap space. We wanted nice column headings and justification.
The fix was to output it as CSV but I retreive the column headings from SYSCOLUMNS for the first row so it presented that part nicely. Justification is still an issue but we're living with it for now.
This is such a common task - why does it seem so difficult to get a simple quick solution?

Date: Wed, 2 Jul 2014 16:25:05 -0400
Subject: Re: Question on using SQL2JXL in multiple concurrent jobs
From: gallium.arsenide@xxxxxxxxx
To: midrange-l@xxxxxxxxxxxx

On Wed, Jul 2, 2014 at 3:49 PM, Nathan Andelin <nandelin@xxxxxxxxx> wrote:
Note that the thread you're linking to talks specifically about moving
away from SQL2XLS to SQL2JXL, due to performance issues with the

I think that such performance problems are quite common with utilities
which dynamically format the results of SQL queries into some other
format... particularly when Java is involved.
I don't think the "particularly when Java is involved" is a fair
assessment. Both SQL2XLS and SQL2JXL "involve Java". Yet SQL2JXL is
noticeably faster. The main thing that makes some POI-based solutions
slow is the RPG-to-Java interface. The more you have to call Java
from RPG, the bigger the overhead. Native Java is... well, not as
fast as pure C or pure RPG, but not as slow as Java-through-RPG.

And then of course there can be better and worse algorithms even
within one implementation language that can affect performance.

Have you considered streaming SQL result sets to .CSV instead?
Usually, CSV is one of the earlier ideas people come up with. Folks
turn to Excel mainly when CSV's shortcomings become deal-breakers.
But yes, if CSV is adequate, then it's a much faster-performing

John Y.
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,
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives

This thread ...


Return to Archive home page | Return to MIDRANGE.COM home page