Autor Wątek: Trigger na ZK blokujący edycję FS  (Przeczytany 7630 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline lkozlowski

  • Nowy użytkownik
  • *
  • Wiadomości: 22
  • Reputacja +0/-0
  • Wersja programu: 1.37 SP3
Odp: Trigger na ZK blokujący edycję FS
« Odpowiedź #15 dnia: Czerwiec 24, 2016, 12:55:03 »
Masz w swojej procedurze:
(SELECT dok_Typ FROM inserted) = 16
Jeżeli w tabeli inserted będzie więcej niż 1 rekord to ten test wywoła błąd.
Musisz to obsłużyć.
@Bird22 Dzięki za poświęcony czas, cierpliwość, a nawet edycję pierwszej swojej odpowiedzi :) (załapałem poranną odpowiedź, ale nie miałem czasu)

Proponuję takie rozwiązanie.
IF (SELECT Count (dok_Id) FROM inserted)=1 -- Zapewnienie, że tylko 1 wiersz (tak się dzieje przy edycji ZK)
IF (SELECT Dok_Typ FROM inserted)  = 16 AND (SELECT pwd_Fk01 FROM  pw_Dane WHERE pwd_IdObiektu = (SELECT dok_Id FROM inserted) AND  pwd_TypObiektu = -8 ) >0 --dalsze sprawdzanie warunków

Czy myślicie, że coś jeszcze warto uwzględnić?

Offline candy

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 4919
  • Reputacja +173/-11
Odp: Trigger na ZK blokujący edycję FS
« Odpowiedź #16 dnia: Czerwiec 24, 2016, 13:10:44 »
Sprawdź i nam opowiedz  ;)

NB po co to dok_Id  w SELECT Count (dok_Id) FROM inserted ?
Jeśli chcesz sprawdzić ile jest rekordów to piszesz po prostu SELECT COUNT(*) FROM...
Dostajesz poprawny wynik bez względu na do czy w tabeli jest pole dok_Id czy go nie ma.
Nie pytaj co rząd może zrobić dla Ciebie. Spytaj czy mógłby tego nie robić.

Offline lkozlowski

  • Nowy użytkownik
  • *
  • Wiadomości: 22
  • Reputacja +0/-0
  • Wersja programu: 1.37 SP3
Odp: Trigger na ZK blokujący edycję FS
« Odpowiedź #17 dnia: Czerwiec 24, 2016, 14:27:46 »
Jasne, że sam sprawdziłem i wiem, że działa ;)

Chodziło mi o to czy widzicie jeszcze jakieś potencjalne zagrożenia :)

Forum Użytkownikow Subiekt GT

Odp: Trigger na ZK blokujący edycję FS
« Odpowiedź #17 dnia: Czerwiec 24, 2016, 14:27:46 »