in reply to capture sybase error

Hi,

You need to set up the syb_err_handler. Take a look at the DBD::Sybase documentation.

From the man page:

sub err_handler { my($err, $sev, $state, $line, $server, $proc, $msg, $sql, $err_type) = @_; my @msg = (); if($err_type eq 'server') { push @msg, ('', 'Server message', sprintf('Message number: %ld, Severity %ld, State %ld, Lin +e %ld', $err,$sev,$state,$line), (defined($server) ? "Server '$server' " : '') . (defined($proc) ? "Procedure '$proc'" : ''), "Message String:$msg"); } else { push @msg, ('', 'Open Client Message:', sprintf('Message number: SEVERITY = (%ld) NUMBER = (%ld)', $sev, $err), "Message String: $msg"); } print STDERR join("\n",@msg); return 0; ## CS_SUCCEED }

NOTE - if you set the error handler in the DBI->connect() call like this

$dbh = DBI->connect('dbi:Sybase:server=troll', 'sa', '', { syb_err_handler => \&err_handler });

Jason L. Froebe

Team Sybase member

No one has seen what you have seen, and until that happens, we're all going to think that you're nuts. - Jack O'Neil, Stargate SG-1