Triger przy zmianie domyślnej wersji technologii.

Problemy i pomysły związane z funkcjonowaniem modułu Produkcja

Moderator: mikey

rafal1988
Posty: 2
Rejestracja: 22 paź 2014, 09:02
Rola: Konsultant CDN XL

Triger przy zmianie domyślnej wersji technologii.

Post autor: rafal1988 »

Witam,

Mam mam następujący problem: chce zrobić trigera na tabeli CDN.prodtechnologia który nie pozwoli na zmianę domyślnej technologii jeśli jakiekolwiek ZP na produkt z tą technologią jest w tym momencie rozpoczęte.

Napisałem coś takiego:

Kod: Zaznacz cały

create TRIGGER cdn.technologiadomyslna
  ON CDN.prodtechnologia
  for update
AS
SET NOCOUNT ON

begin



if ( (select  top 1 PPC_Technologia from 
				cdn.prodprocesy	join
				cdn.ProdCzynnosci	on PPC_Id=PCZ_Proces join
				cdn.ProdZlecenia	on PZL_Id=PPC_Zlecenie 
		where PZL_DataZamkniecia = 0 and PCZ_Realizuje <> 0 and PPC_Technologia = (
																					select 
																						PTE_Id 
																					from deleted) )
																									 is not null  ) 

begin 
		
							RAISERROR('#CDN_INFO/# 
							#CDN_1=Brak praw do dodawania zleceń! /#
							#CDN_2=Sprawdź kontrahenta włączając filtry oraz kontrahentów archiwalnych. /#' , 16,1)

          ROLLBACK TRAN
          SET NOCOUNT OFF
          RETURN
end


end

Po próbie zmiany technologii z aplikacji krzyczy następującym błędem :


Błąd wewnętrzny procedury ExecSQL-2.
Błąd wykonania zapytania (90): Z podzapytania została zwrócona więcej niż 1 wartość. Jest to niedozwolone, jeśli podzapytanie następuje po znaku =, !=, <, <= , > lub >= albo gdy jest używane jako wyrażenie.
update cdn.ProdTechnologia set PTE_Wersja = xxxxx where PTE_Wersja = xxxxx




i nie wiem jak to obejść.

elmiq
Posty: 1025
Rejestracja: 23 sie 2010, 10:04
Rola: Administrator CDN XL
Lokalizacja: Warszawa

Re: Triger przy zmianie domyślnej wersji technologii.

Post autor: elmiq »

Obiekt deleted nie zawsze zawiera jeden wiersz, przez co możesz mieć taki błąd.

Pozdrawiam,
Mateusz
Mateusz Świerkosz

http://elmiq.blogspot.com/

rafal1988
Posty: 2
Rejestracja: 22 paź 2014, 09:02
Rola: Konsultant CDN XL

Re: Triger przy zmianie domyślnej wersji technologii.

Post autor: rafal1988 »

Ok dzięki sprawdzę w poniedziałek.

ODPOWIEDZ