From: The Frog on
Hi Everyone,

I am trying to decide how to approach a design problem. The scenario
is that there is a data warehouse using Oracle that contains 'real-
time' data that is needed for a report. The source data in the
warehouse is messy to say the least, but with enough time wasted I
have managed to get a clean 'capture' of the data, and am currently
using a passthrough query to get to that data. There are approximately
600k rows of data, and it takes about 13.5 minutes to receive all that
from the passthrough. So far so good.

My design issue is that the desired report is needed with comparison
over time. This 'real-time' system only shows what the world 'looks
like' right now. My thinking to achieve a time comparitive based
report is to 'capture' the data from the passthrough query and dump it
into a separate MDB (ie/ generate a new one each time a capture is
done), and timestamp it.

I am wondering if anyone has done this and can let me know the pro's
and cons of this approach. Is there a better way to handle this? And
while we're at it is there a simple way to perform this capture
outside of tons of code? - I can achieve a capture but I am not sure
that my approach is a good one.

Any feedback or shared wisdom greatly appreciated :-)

Cheers

The Frog
From: Roger on
On Mar 12, 1:37 am, The Frog <mr.frog.to....(a)googlemail.com> wrote:
> Hi Everyone,
>
> I am trying to decide how to approach a design problem. The scenario
> is that there is a data warehouse using Oracle that contains 'real-
> time' data that is needed for a report. The source data in the
> warehouse is messy to say the least, but with enough time wasted I
> have managed to get a clean 'capture' of the data, and am currently
> using a passthrough query to get to that data. There are approximately
> 600k rows of data, and it takes about 13.5 minutes to receive all that
> from the passthrough. So far so good.
>
> My design issue is that the desired report is needed with comparison
> over time. This 'real-time' system only shows what the world 'looks
> like' right now. My thinking to achieve a time comparitive based
> report is to 'capture' the data from the passthrough query and dump it
> into a separate MDB (ie/ generate a new one each time a capture is
> done), and timestamp it.
>
> I am wondering if anyone has done this and can let me know the pro's
> and cons of this approach. Is there a better way to handle this? And
> while we're at it is there a simple way to perform this capture
> outside of tons of code? - I can achieve a capture but I am not sure
> that my approach is a good one.
>
> Any feedback or shared wisdom greatly appreciated :-)
>
> Cheers
>
> The Frog

instead of capturing / timestamping into an MDB, can you not do that
within Oracle
and report from that ?

if you are going to collect data into an MDB, why would you need 'tons
of code', isn't it a simple insert query from Oracle to an mdb, where
the MDB table's timestamp field defaults to the current date ?
From: The Frog on
Hi Roger,

The reason for the capture is that comparison over time needs to be
done, but of course the 'live' data will change, making the report
impossible, so the data needs to be saved at a point in time, hence
the capture.

My tons of code was based around using recordsets to receive the data
so that I had some form of error control and feedback over the
process. I have also done the make-table query approach (much faster)
but that method lacks any feedback, and for such a (relatively) long
process feedback for the user is a good idea (IMO).

I had forgotten about the timestamp field default value of now()
trick! Thankyou for the reminder. Simple things you sometimes
forget.......

After doing a little testing it looks like an individual data capture
will contain about 50Mb of data. Should be able to dump many captures
into a single MDB.

My thinking at the moment is to re-link the tables from the FE to user
designated BE and dump the data into that. My concern is I suppose
centered around providing sufficient feedback to the user during the
capture process. I am yet to find a 'minimalist' approach that gets
the job done. At the moment the best I can do is to run a passthrough
that tells me how many rows to expect (pretty quick), then use a
recordset and page through keeping count.......

Open to suggestions.

Cheers

The Frog
From: Roger on
On Mar 12, 8:26 am, The Frog <mr.frog.to....(a)googlemail.com> wrote:
> Hi Roger,
>
> The reason for the capture is that comparison over time needs to be
> done, but of course the 'live' data will change, making the report
> impossible, so the data needs to be saved at a point in time, hence
> the capture.
>
> My tons of code was based around using recordsets to receive the data
> so that I had some form of error control and feedback over the
> process. I have also done the make-table query approach (much faster)
> but that method lacks any feedback, and for such a (relatively) long
> process feedback for the user is a good idea (IMO).
>
> I had forgotten about the timestamp field default value of now()
> trick! Thankyou for the reminder. Simple things you sometimes
> forget.......
>
> After doing a little testing it looks like an individual data capture
> will contain about 50Mb of data. Should be able to dump many captures
> into a single MDB.
>
> My thinking at the moment is to re-link the tables from the FE to user
> designated BE and dump the data into that. My concern is I suppose
> centered around providing sufficient feedback to the user during the
> capture process. I am yet to find a 'minimalist' approach that gets
> the job done. At the moment the best I can do is to run a passthrough
> that tells me how many rows to expect (pretty quick), then use a
> recordset and page through keeping count.......
>
> Open to suggestions.
>
> Cheers
>
> The Frog

I assume you have a form with a command button to start the capture
you could have a couple of textboxes on the form, one to display the
step currently being processed

the other, driven by the timer event, to display the number of records
in the table(s) being built...
From: The Frog on
Hi Roger,

I do have a button that starts the process, and I can place a 'hamster
in a wheel' so to speak based on the forms timer event to show
activity is taking place. I know how many records need to be brought
back (separate count query), but using an SELECT INTO statement for
the table, which is by far the quickest method gives me no feedback on
how far through it is during the process (there is only one table /
view to capture) - hence using the recordset.

I was just hoping that someone might know a trick with access to show
that kind of data without using a recordset. It looks like I might
just have to stay with the existing method so far. It does work, just
takes a long time......

Thanks for the help, I appreciate your time and interest.

Cheers

The Frog