On May 15, 2011, at 2:08 PM, Jonathan Leffler wrote:
> Tested using Perl 5.13.4 and DBI 1.616 now - but I originally spotted the
> problem in 2003 when the versions were a lot older...
>
> Consider:
>
> # Test that statement handles from disconnected connections fail!
>
> use strict;
> use warnings;
> use DBI;
>
> my $table = "dbd_tester";
> my $dbh = DBI->connect('dbi:NullP:immaterial', '', '', {RaiseError=>1});
> #connect_to_test_database({RaiseError => 1});
> my $sth = $dbh->prepare(qq{INSERT INTO $table VALUES(?)});
> $dbh->disconnect;
> $sth->execute(1);
> print "** Failed to FAIL!\n";
>
>
> The print statement is executed, despite the fact that errors are supposed
> to be raised.
> I get the same result using DBD::Informix instead of NullP.
>
DBD::Sybase does not print the "failed to FAIL" string:
[mpeppler@gw mpeppler]$ perl /tmp/t.pl
DBI::db=HASH(0x880eb40)->disconnect invalidates 1 active statement handle
(either destroy statement handles or call finish on them before disconnecting)
at /tmp/t.pl line 9.
DBD::Sybase::st execute failed: ct_param() failed! at /tmp/t.pl line 10.
DBD::Sybase::st execute failed: ct_param() failed! at /tmp/t.pl line 10.
However, it can't really be said to fail gracefully :-)
Michael
--
Michael Peppler
Sybase on Linux FAQ: http://www.peppler.org/FAQ/linux.html
"A successful [software] tool is one that was used to do something undreamed of
by its author." -- S. C. Johnson