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