Thank you for your quick response.
However, this approach is not consistent with the qualiy I expect from the rest of the product
1. The extra boolean parameter does not add any benefits. ResultSet.getType() can tell the WorkbookDesigner logic if its dealing with a TYPE_FORWARD_ONLY. It should not be necessary to provide a boolean parameter to identify the resultset.
2. Passing in False for the parameter does not provide any benefits with any kind of resultset. If it was beneficial to limit the number of records retrieved the API should provide an int recordLimit parameter to do that. Otherwise its just counter-intuitive.
3. It sounds like the logic is caching the entire data from the ResultSet. This is a less than ideal for a production web environment with hundreds to thousands of simultaneous users. Most of the current reports we would port to the Aspose.Cells API are created with at least 10 and sometimes as many as a 100 ResultSets. Caching each ResultSet would be extremely memory intensive. Not a good thing.
One of the workarounds that I have created is our own WorkbookDesigner-like class that works with any type of ResultSet. I've attached an extremely simplified version of the code along with sample input and output files.
Take a look at the process method (summarized below):
boolean hasMoreData=false;
if(ResultSet.next()) {
do {
//retrieve the current record of data from the worksheet
.... your code here....
//check if there is another record.
hasMoreData = ResultSet.next();
//if there is another record, insert the
//next row in Sheet
if(hasMoreData) {
...code to insert row, copy formatting, etc ...
}
//write resultset data to current row (not new one)
... getCell().setValue(value)
//if we have more data, save the newly inserted,
//and blank row, as the row we will work on next...
if(hasMoreData) {
... make row inserted above the current row..
}
}while(hasMoreData);
This kind of logic won't depend on knowing how many records there are in advance, which appears to be an important part of the Aspose.Cells logic.