On Tue, Oct 16, 2001 at 10:35:49AM +0200, Alexander Farber wrote:
>             if (CS_STATUS_RESULT == $sth -> {syb_result_types})
>             {
>                 $res = $href -> {'COL(1)'}; # result of stored proc
>                 last;
>             }
> 
>     print abstract ($res ? q{Modifying the database has failed.} : 
>         qqr{The <B>$release</B> has been deleted from the database.});
> 
> I'm trying to catch the return code of this stored procedure:
> 
>     create procedure delete_release @release varchar (32)
>     as
>       delete SWRFILES where RELEASE = @release

I've tried fixing it this way:

    create procedure delete_release @release varchar (32)
    as
        begin tran

        delete SWRFILES where RELEASE = @release

        if @@error != 0 or @@rowcount != 1
        begin
            rollback tran
            return 1
        end
        commit tran

but it doesn't help, the script still dies:

    DBD::Sybase::st execute failed: Server message number=547 severity=16 
    state=1 line=5 procedure=delete_release text=Dependent foreign key 
    constraint violation in a referential integrity constraint. dbname = 
    'acapackdel', table name = 'SWRFILES', constraint name = 
    'LOADFILES_RELEAS_1584008674'. Statement=delete_release 'R9 CN1' 
    Server message number=3621 severity=10 state=0 line=5 procedure=delete_
    release text=Command has been aborted.  Statement=delete_release 'R9 CN1' 

So, is unsetting the RaiseError the only way?

Regards
Alex

Reply via email to