Posted By: OOK (Pure academic user) on 'CZdatabases'
Title: Re: sybase: no transaction or savepoint of that name found
Date: Thu Jun 29 16:57:46 2000
No je to celkem jasny ne ? DB-engine nemuze udelat rollback neuspesneho
volani takove procedury :-)))
MK
> asi mi neco unika.
>
> muzete mi prosim nekdo objasnit, proc nasledujici procedura
> pri chybe (vetsinou vkladani duplicitnich zaznamu do tabulky
> s unikatnim klicem) zahlasi ponekud neprijemne:
>
> Cannot rollback tr_build_c - no transaction or savepoint of that name found.
> Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRAN is
> missing.
>
> ?
>
> dik
>
> procedura (pro snazsi citelnost vyhazuju detaily u dotazsu)
>
> create proc build_topic_children(@parent_id numeric(7,0))
> as
> begin
> declare @deep int,
> @forever int,
> @rc int
>
> select @rc = 0
>
> begin tran tr_build_c
> NEJAKY INSERT
> if @@error != 0
> begin
> rollback tran tr_build_c
> return -1
> end
> select @forever = 1
> select @deep = 1
> while @forever = 1
> begin
> DALSI INSERT
> if @@error != 0
> begin
> -- pokud jsem rollbackoval primo zde, blblo to
> stejne
> select @rc = -2
> break
> end
> JESTE JEDEN INSERT
> if @@error != 0
> begin
> select @rc = -3
> break
> end
> if @@rowcount = 0
> break
>
> end
> if @rc = 0
> commit tran tr_build_c
> else
> rollback tran tr_build_c
> return @rc
> end
>
> -- dik
> --
> -- pavel