I was wondering what the sequence of events is in Crystal with respect to running a stored procedure and returning data to the report. I have a report that goes through the database query (my stored procedure) very quickly according to the performance stats, but it reads the records very slowly.
Does Crystal start processing the data from the stored procedure before the stored procedure is completed or only once all the records are pulled?
What would cause the report to read the records very slowly? I am not using any of the normal performance hogs, like page numbers, subreports, or commands. The records that are being read are already aggregated by SQL. The vast majority of my parameters are passed to the stored procedure, although there are a few that I have kept in the report, which are primarily for formatting choices. There is one parameter which allows the user to enter specific codes to look for or to select "ALL" for all of the codes. So I know that the report is reading summarized data for all codes and then filtering to the ones I want to see. If I could easily pass a list of values to SQL from Crystal I would, but it isn't that easy without a custom function to split out the values.
The only other thing I can think of is that I'm using flexible grouping. I have 3 parameters, one for each of the three possible group levels. The user gets to decide what to group on for each of these levels. Other reports of mine use this feature and don't read records slowly. So I'm not sure that this is the issue.
I would appreciate some experienced developer insight here. Any suggestions are welcome.