Your skill will accomplish what the force of many cannot |
|
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
"Is there any way to force DBI to verify in perpare_cached that the statment handle is still valid and if not re-prepare it?"
You could write a subroutine that re-prepares the handle. That is: From the try_again() function, you could reexecute your statement after running some checks and return the results. "Would doing so void the performance gains I get from using prepare_cached?" Not if there is going to be some extended period of time where the query (data from the query) will be reused, IMO. In all, a lot of what you're worried about is standard error checking. Whether using cached queries or not, you should always check your prepare and/or execute statements. If you are only worried about catching a certain error or a list of errors, you can pass $DBI::errstr and do some parsing to decide whether or not you want to handle the error (e.g re-prepare your statement), die, or continue. HTH, Chris Update: Per runrig's comment, I changed the try_again() to go after the execute. I read to fast and didn't realize the fail was occurring on the execute. This will work (I use it). Either way, I like the other ideas better (from leriksen and dragonchild), and suggest using those...as I will now start doing! In reply to Re: DBI perpare_cached and statment handle gone bad
by cbro
|
|