here is a small example of two call back functions and their use, please
also see the module's documentation at CPAN.org,
as well as Michael Peppler's site for more in depth information
http://mbay.net/~mpeppler/Sybperl/article.html.

You will likely want much more in depth error management than this but for a
start...

#!/usr/bin/perl -w

use strict;
use Sybase::CTlib;


#---SNIP----#

#
# Callbacks for CT Lib messages
#
sub ClientCallBack()
{
  my     ($M_HNDL_LAYER,
            $M_HNDL_ORIGIN,
            $M_HNDL_SEVERITY,
            $M_HNDL_NUMBER,
            $M_HNDL_MESSAGE,
            $M_HNDL_OSMESSAGE,
            $M_HNDL_DBHANDLE) = @_;

    if($M_HNDL_SEVERITY > 10)
    {
        print STDERR "ERROR: $M_HNDL_NUMBER, MESSAGE: $M_HNDL_MESSAGE\n";
    }
    CS_SUCCEED;
}

sub ServerCallBack
{
    my    ($S_HNDL_DBHANDLE,
            $S_HNDL_NUMBER,
            $S_HNDL_SEVERITY,
            $S_HNDL_STATE,
            $S_HNDL_LINE,
            $S_HNDL_SERVER,
            $S_HNDL_PROC,
            $S_HNDL_MESSAGE) = @_;

    if($S_HNDL_SEVERITY > 10)
    {
        print STDERR "ERROR:  $S_HNDL_NUMBER, MESSAGE: $S_HNDL_MESSAGE\n";
    }
    CS_SUCCEED;
}

#
#  Usage example:
#

sub CheckStorage
{

    my ($SERVER,$DATABASE) = @_;

    ct_callback(CS_CLIENTMSG_CB, \&ClientCallBack);
    ct_callback(CS_SERVERMSG_CB, "ServerCallBack");

    my $CONNECTION = Connect($SERVER);

    $CONNECTION->ct_sql("exec dbccdb..sp_dbcc_deletehistory");
    $CONNECTION->ct_sql("dbcc checkstorage($DATABASE)");
}


sub Connect()
{
    my     ($SERVER) = @_;
    my $PASSWORD = sorryCharlie;
    my $USERID = 'sa';

    my $dbHandle = Sybase::CTlib->ct_connect($USERID , $PASSWORD ,$SERVER);

    return($dbHandle);
}

sub RunCheck
{
    my ($SERVER,$DATABASE ) = @_;
    chomp($SERVER);
    chomp($DATABASE);
    CheckStorage($SERVER,$DATABASE);
}

RunCheck('jupiter','dba');

###END###

HTH,
George

"Kanchana Weerasinghe" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> I'm using CTLib to perform queries on sybase database.
>
> How do I catch errors such as database intergrity constraints etc?
> Thanks in advance.
>
>



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to