|
|
sybperl-l Archive
Up Prev Next
From: Jamie Belanger <jamie_belanger at globalcrossing dot com>
Subject: RE: Trapping Sybase errors...
Date: Feb 9 2000 10:46PM
You add client and server callbacks... Here's an example of how to do it:
-----------------------------------------------------------------
#Place this somewhere at the top of your script
#error handling (stolen from those who came before)
ct_callback(CS_CLIENTMSG_CB, \&msg_cb);
ct_callback(CS_SERVERMSG_CB, "srv_cb");
##################################################################
# error handling sub routines (stolen from those who came before)
##################################################################
sub msg_cb
{
my($layer, $origin, $severity, $number, $msg, $osmsg) = @_;
printf STDERR "\nOpen Client Message: (In msg_cb)\n";
printf STDERR "Message number: LAYER = (%ld) ORIGIN = (%ld)",
$layer, $origin;
printf STDERR "SEVERITY = (%ld) NUMBER = (%ld)\n", $severity,
$number;
printf STDERR "Message String: %s\n", $msg;
if (defined($osmsg))
{
printf STDERR "Operating System Error: %s\n", $osmsg;
}
CS_SUCCEED;
}
sub srv_cb
{
my($cmd, $number, $severity, $state, $line, $server, $proc, $msg) =
@_;
printf STDERR "\nServer message: (In srv_cb)\n";
printf STDERR "Message number: %ld, Severity %ld, ", $number,
$severity;
printf STDERR "State %ld, Line %ld\n", $state, $line;
if (defined($server))
{
printf STDERR "Server '%s'\n", $server;
}
if (defined($proc))
{
printf STDERR "Procedure '%s'\n", $proc;
}
printf STDERR "Message String: %s\n", $msg; CS_SUCCEED;
}
Jamie Belanger
Sys Admin, Global Crossing
(319) 298-1489 or ext. 489
-----Original Message-----
From: Fuerte, Hector BGI SF [mailto:Hector.Fuerte@barclaysglobal.com]
Sent: Wednesday, February 09, 2000 4:26 PM
To: SybPerl Discussion List
Subject: Trapping Sybase errors...
Hi!
How do you trap this sql error in Perl:
Msg 2601, Level 14, State 3:
Server 'SA_SBU', Line 1:
Attempt to insert duplicate key row in object 't_web_xing_stats_hist' with
unique index 'XPKt_web_xing_stats_hist'
Command has been aborted.
(0 rows affected)
thanks.
Hector
|