Perrin Harkins wrote:
On Thu, 2003-10-23 at 14:42, Geoffrey Young wrote:

You don't have to, but if you don't and the Oracle connection gets lost
and Apache::DBI reconnects, your stale statement handles will all fail. The best thing to do is use prepare_cached. This will use an already
prepared statement handle if possible.

I haven't done any of this in a very long time, but last I remember the results of using prepare_cached with Apache::DBI was undefined.


The prepare_cached code is very simple and easy to read.  It tucks the
statement handle into a hash.  When it gets called again with the same
SQL it checks the statement to see if it is still active and returns it
if it is.  Otherwise, it prepares a new statement.

I've used prepare_cached with Apache::DBI for years and have never had
any problems with it.  Maybe you're thinking of how it used to die if
you tried to reuse a statement handle without reading all of its
results.  This is typically caused by a programming mistake, but you can
call finish() if you want to bail on a statement without reading it all,
and it was changed from die to warn in DBI a couple of years ago.

geez, it's so easy to get out of touch with these things :)


thanks for the explanation!

--Geoff



Reply via email to