I'm querying data that is contained in either a current table, SHIP_HIST, or an 
archive table, SHIP_HIST_ARC. There is a view setup on the server, 
SHIP_HIST_VIEW, that does a union on both tables so if a user wants to query 
both old and new data they may. A nightly stored procedure moves records from 
current to archive tables based on age, so there is no duplication of records 
between the two tables. The current table is kept fairly small so most queries 
can be done quickly.

The current version of the report I am working on always queries the view, 
regardless of what dates the user is looking for. This is a very slow process 
due to the large number of records in the view. In order to speed up the 
queries, I am running a quick query to determine the oldest date in the current 
table, and as a result of that I name a variable "TableName". If the begin and 
end dates the user is looking for are entirely within the current table, 
TableName is SHIP_HIST.  If the begin and end dates are both before the oldest 
date in the current table, the TableName variable is SHIP_HIST_ARC.  If the 
begin and end dates span the oldest date in the current table, then I name 
TableName SHIP_HIST_VIEW. This query works fine every time.

Then, I run queries against this initial query to get some subtotals and grand 
totals.  My problem is that when the initial query is run against either 
SHIP_HIST or SHIP_HIST_VIEW, it runs fine. If the initial query is run against 
the SHIP_HIST_ARC table, ColdFusion throws an error; The header on the debug 
page is "Error Occurred While Processing Request". The data is a single zero 
(0). Below that is the area that shows the filename where the error occurs and 
then show where this data is being called from. I have all the queries in 
separate files so the error is occurring in ShipHist5.qry. Here is the text of 
that query:
<CFQUERY NAME="#QueryName#" DBType="query">
        SELECT
                count(distinct mst_ship_num) AS mst_shp_tot_qty
        FROM
                ShipHist
</CFQUERY>

As I said, it runs fine when the initial query is run against either the 
current table or the view, but not the archive table.  It would make more sense 
to me if the error came from Oracle, but it is a CF error.

Down in the Exceptions area of debug here is the error message:

Exceptions
13:37:54.054 - java.lang.ArrayIndexOutOfBoundsException - in 
D:\inetpub\wwwroot\dev\DMPlusReports\queries\ShipHist5.qry : line 12
            0

Can anyone make any sense of this error?  I have used the same technique to 
speed up other reports that were originally written against the view and have 
had no problems. This one has me stumped. I'd sure appreciate anyone who might 
have an idea what is going on here.

Thanks,

Loyd Campbell
Contract CF Programmer
Plano, TX

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:253978
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to