Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re^7: Can DBI modify queries on the fly?

by ikegami (Pope)
on Feb 18, 2009 at 18:36 UTC ( #744841=note: print w/replies, xml ) Need Help??

in reply to Re^6: Can DBI modify queries on the fly?
in thread Can DBI modify queries on the fly?

Notice the call to ->connect in the callback, overriding Sybase's? The callback mechanism provides a means of (conditional) overriding.

$sybase_drh->{Callbacks} = { selectrow_array => sub { # Protect against recursion when calling overriden method. return if $in_callback; local $in_callback = 1; my ($drh, $sql, $attrs, @bind_values) = @_; # Do something to $sql, $attrs and/or @bind_values here... # Tell DBI not to call original connect method undef $_; return $drh->selectrow_array($sql, $attrs, @bind_values); }, };

Note that it would probably make more sense to override prepare and/or execute than convenience methods such as selectrow_array.

Update: Added code.

Replies are listed 'Best First'.
Re^8: Can DBI modify queries on the fly?
by kyle (Abbot) on Feb 18, 2009 at 18:53 UTC

    Thank you!! I remember reading about the conditional override that you're using, but I somehow forgot it when I sat down to try to meet my goal. That works beautifully and saves me the trouble of trying to subclass a DBD. Thanks!

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://744841]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (4)
As of 2018-06-20 04:15 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (116 votes). Check out past polls.