Hi Monks,

I can't figure out what I am doing wrong when trying to use a DBI handler in a sub...

The warn I get :
Issuing rollback() for database handle being DESTROY'd without explicit disconnect().

I'd like to use my dbhandler in a function :
my $conn = DBI->connect("dbi...); sub { my $conn = shift; ... }
I would be really appreciates explainations on what happens...

Some more informations as requested,here is a simple exemple that doesn't work properly :
use somepackage; my $conn = somepackage::connectdb(); $conn->{AutoCommit} = 0; ... sub foo { my ($conn, $bar) = @_; my $sth = $conn->prepare(qq{ SELECT COUNT(*) AS MYCOUNT FROM MYTABLE WHERE ID=? }); $sth->execute($bar); my $ref = $sth->fetchrow_hashref(); $sth->finish(); return $ref->{MYCOUNT}; } print &foo($conn, 'some id'); ... $conn->disconnect(); __END__
code into somepackage :
sub connectdb { my $user = 'user'; my $password = 'password'; my $host = 'host'; my $sid = 'SID'; return (DBI->connect("dbi:Oracle:host=$host;sid=$sid", $user, $pas +sword, {PrintError => 1, RaiseError => 1, AutoCommit => 0})); }
Greg

In reply to Passing a DBI handler the proper way by gchatelier

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.