a vjerovatno je neka glupost koju nikako ne mogu da vidim
Hoću da uradim slijedeće
BEGIN TRANSACTION t1;
go
exec sp_ado_msi_optimum 1647760;
go
rollback transaction t1;
A da mi u bazi osnau zapisani rekordi koje je izvršila procedura sp_ado_msi_optimum;
Smama procedura ovako izgleda:
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Admir Hodžić
-- Create date: 10.12.2008
-- Description: Ovo je seqvenca proovjera-optimum koja kontroliše da li će Narudžba napraviti višak zaliha na destnaciski randnji
-- Verzija: 1.Beta
-- drop procedure sp_ado_msi_optimum
-- =============================================
CREATE PROCEDURE sp_ado_msi_optimum
@id int
AS
BEGIN
SET NOCOUNT ON;
declare @rand float
set @rand= rand()
/*--prvo uzimamo TRESH HOLD primke u LOG tablicu da vidimo šta to ne valja--*/
insert into ado_log_ulaz
(tip,skl_id,par_id,doc_dob,rbr,art_id,ulaz,optimum,lager,mpc,mpc_lag,fc,fc_lag,nc,nc_lag,rand)
select
doc.tip
,doc.skl_id
,doc.par_id
,doc.doc_dob
,sdo.rbr
,sdo.art_id
,sdo.kol
,lager.optimum
,lager.kolicina
,sdo.mpc
,lager.mpc
,sdo.fc
,lager.fc_zad
,lager.nc
,lager.nc_zad
,@rand
from doc
inner join sdo on doc.id=sdo.doc_id
inner join art on sdo.arT_id=art.id
left outer join lager on doc.skl_id=lager.skl_id and sdo.art_id=lager.art_id
where doc.id=@id
and sdo.kol > isnull(lager.optimum,0)-isnull(lager.kolicina,0) /*--ovdije treba dodati uslov paketa u FETURE verzijama--*/
/*--sada provjeramo da li smo išta upiali preko @@idenditiya--*/
if @@identity is null /*--ako nismo ništa upoisali idenditi je null i onda puštamo poruku da je uredu--*/
begin
select
(Convert(Bit,0)) as valid,'Nema problema' as Msg
end
else /*--usuprotnom pročitati će mo zapis iz LOGA uz pomoć paramtra rand i --*/
begin
select
(Convert(Bit,0)) as valid,
'Stavka: '+
art.sifra+' '+art.naziv+' '
+'RBR: '+convert (varchar(3),RBR)
+isnull(
(' Dozvoljeni ulaz:'+cast(round((optimum-lager),0) as varchar(5))
+ ' a ulazi:'+cast(ulaz as varchar(5))+' ;')
,'napostoji u cijeniku.;') as Msg
from
ado_log_ulaz
inner join art on art_id=art.id
where rand=@rand
order by rbr
end;
end
GO
Probao sam sve i svašata, čitao fourm ranije postove i BOL ali nisam uspo riještiti problem
Kako da počenm i završim transakciju u stored proceduri te i ako ovu slijedeću roll back-ujem da ostanu zapisi prve
Hvala unaprijed
Admir