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