views:

56

answers:

2

I have an upcoming project in which reports will play a large role. The reports will be predefined in nature, but may return significant amounts of data. For the database portion of the project we've settled on PostgreSQL, but we're still debating about what stack of software to use for the frontend.

The reports are a significant enough piece of the puzzle that strong reports support may swing us one way or the other. In a previous project we've used Oracle and Crystal together. However, we're not big Crystal fans and would like to avoid it, if possible.

My big concern is that a large result set would have to be materialized first in order the generate the report and multiple users trying to materialize too many large sets at once would hurt (we ran into this problem initially in Crystal with another application). In Crystal and Oracle, we could return a cursor and Crystal would read the data in from the cursor. Do any other reporting systems have support for reading result sets from a returned PostgreSQL refcursor?

I'm reasonably familar with BIRT and have a passing notion of JasperReports but can't seem to identify if its possible in either.

EDIT: Linux only.

A: 

It looks like cursors have been supported inside BIRT since the 2.0 release (early 2009). Check out this thread for the background: https://bugs.eclipse.org/bugs/show_bug.cgi?id=117166

The key here seems to be the JDBC driver you chose to deploy. As along as it implements the FULL JDBC stack (and I believe Postgres does) you should be just fine.

MystikSpiral
That page is largely revolved around Oracle and its stored procedures. You can't call a PostgreSQL function returning a refcursor even remotely the same and it doesn't seem to work for me.
rfusca
A: 

If you can work with Reporting Services, you can use npgsql as a provider. Reporting services makes creating reports quick and easy. Having said that it is doesn't have the functionality of a custom solution that uses say DevExpress XtraReports components (Warning, XtraReports aren't the nicest of controls to use, but they are very powerful).

We're using DevExpress as we have multiple external customers and are able to layout the report according the business logic. This isn't as easy (if not infeasible) to do in SSRS.

For an internal project I'd use SSRS, as you just have to write your sql, then run a wizard on that sql, then fiddle with the layout.

Mr Shoubs
Sorry, Linux only.
rfusca