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    






Reply via email to