-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!feed.news.qwest.net!mpls-nnt
p-03.inet.qwest.net!nx01.iad01.newshosting.com!newshosting.com!newsfeed.neostra
da.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrad
a.pl.POSTED!not-for-mail
Date: Wed, 23 Apr 2014 13:24:05 +0200
From: wloochacz <w...@n...spam.gmail.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101
Thunderbird/24.4.0
MIME-Version: 1.0
Newsgroups: pl.comp.os.ms-windows.winnt,pl.comp.pecet
Subject: Re: Serwer dla MS-SQL (crosspost)
References: <lir1o7$rq5$2@usenet.news.interia.pl>
<53511928$0$2153$65785112@news.neostrada.pl>
<lir8no$anp$1@usenet.news.interia.pl>
<53516316$0$2233$65785112@news.neostrada.pl>
<litnm7$l45$1@usenet.news.interia.pl>
<53527a63$0$2241$65785112@news.neostrada.pl>
<liua3i$s0u$1@usenet.news.interia.pl>
<5352c885$0$2366$65785112@news.neostrada.pl>
<liula7$jvg$1@usenet.news.interia.pl>
<lj6f19$vs$1@usenet.news.interia.pl>
In-Reply-To: <lj6f19$vs$1@usenet.news.interia.pl>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 76
Message-ID: <5357a2ed$0$2224$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.11.193.51
X-Trace: 1398252269 unt-rea-b-01.news.neostrada.pl 2224 83.11.193.51:40589
X-Complaints-To: a...@n...neostrada.pl
Xref: news-archive.icm.edu.pl pl.comp.os.ms-windows.winnt:252638
pl.comp.pecet:1235308
[ ukryj nagłówki ]W dniu 2014-04-22 21:13, Adam pisze:
> W dniu 2014-04-19 22:11, Adam pisze:
>> W dniu 2014-04-19 21:03, wloochacz pisze:
>>> W dniu 2014-04-19 19:00, Adam pisze:
>>> (...)
>>> W dobrze zaprojektowanej i wdrożonej aplikacji (i bazie danych
>>> oczywiście) nie ma prawa zdarzyć się coś takiego jak "popsuta baza".
>>> Nie wiem, może za mało widziałem, ale... Zajmuję się MSSQLem od wersji
>>> 2000 na poważnie i nigdy nie miałem przypadku popsutej bazy danych, na
>>> poziomie serwera.
>>> Braki w danych, osercone dokumenty, zagubione transkacje - pewnie, że
>>> było. Ale to był efekt źle zaprojektowanej apliakcji. Tylko i wyłącznie.
>>
>> Nie wiem, czy dobrze się wyraziłem.
>>
>> Przykład:
>> Klient się "walnął" i z jakichś powodów trzeba fakturę wycować "do
>> bufora" ("Bufor" oznacza, że dokument jest zapisany, ale nie
>> zatwierdzony "na stałe", można go dowolnie zmieniać lub usunąć).
>>
>> Przy wycofaniu do bufora trzeba pamiętać, aby wycofać dokumenty
>> magazynowe (czyli WZ), wycofać płatności (czyli KP), wrócić ewentualne
>> rezerwacje i jeszcze wiele innych rzeczy.
>> Wydaje mi się, że gdyby nie było triggerów, to serwisant mógłby
>> przykładowo wycofać WZ, przywrócić rezerwacje, ale zapomniałby o
>> wycofaniu płatności.
A pewnie - mógłby.
Gmeranie po bazie danych zawsze może skończyć się czymś podobnym.
>> Tym zajmują się triggery.
>> Czy dobrze myślę?
Dobrze, ale z zastrzeżeniem - tym mogą zajmować się triggery.
Tak samo jak da się to zrobić za pomoca procedury wywoływanej na żądanie
- np. przez aplikację serwisową.
Kiedyś dwano tem, jak zajmowałem się wdrożeniami ERPów, miałem cały
toolbox do takich zabaw ;-)
>>
>> (...)
>>
>
> Przypomniało mi się jeszcze jedno ważne zadanie dla triggerów: dodatkowe
> warunki.
>
> W systemie CDN-Optima nie ma możliwości zdefiniowania "wymagalności" pól.
> Przykładowo, formatka kontrahenta. Chcemy wymusić wprowadzenie wartości
> do pola "telefon" - najprościej zrobić trigger, który będzie darł pysk,
> jeśli chcemy zapisać kartę kontrahenta z pustym polem "telefon".
> Oczywiście to dość prosty, wręcz trywialny przykład.
> Nie bardzo wiem, jak inaczej można by to zrobić.
Ale, moim zdaniem, to jest krzywe... walidacją tego typu powinna
zajmować się aplikacja.
Powinna oferować użytkownikowi stosowne możliwości do definicji takich
walidatorów - włącznie z walidacją opartą na wyrażeniach/skryptach.
A jeśli tego nie robi - no cóż...
> Zaleta: triggery "przeżywają" konwersję bazy danych do nowszej wersji, a
> Optima jest aktualizowana kilkukrotnie w ciągu roku.
Raczej odwrotnie ;-)
Zauważ, że MSSQL jest taki "gupi", że nie sprawdza triggerów/procedur
pod kątem zgodności ze schematem bazy danych.
Innymi słowy - stwórz trigger, który robi cokolwiek i odwłuje się do
jakiegoś pola w tabeli.
Potem usuń to pole (zmień nazwę, cokolwiek) - teraz masz trigger, który
pieknie się wysypie w momencie jego użycia - ale nie wcześniej.
Poza tym, oglądam dokumentację CDN - faktycznie, tam ejst cala masa
triggerów, które wołają się nawzajem.
Trafiłem na taki zapis:
if @@NESTLEVEL>4 return
Uuuaaa... nie będę się wypowiadał, bo za mało wiem - ale to wygląda
podejrzanie.
--
wloochacz
Następne wpisy z tego wątku
- 23.04.14 23:38 fReLuZ
- 24.04.14 00:01 Adam
- 24.04.14 15:31 Adam
- 24.04.14 15:45 wloochacz
- 24.04.14 15:48 wloochacz
Najnowsze wątki z tej grupy
- drukarka potrzebna
- Rok 1973
- CFM (airflow) AMD Wraitha
- 16. Raport Totaliztyczny: Sprzedawanie zaszyfrowanych filmów na płytach Blu-Ray bez kluczy deszyfrujących
- 15. Raport Totaliztyczny: Średniowiecze Po,Zniszczeniu AmigaOS i Plan9
- USB3.x->HDMI/DP ze sterownikami w win11
- Dell ubija / przemianowuje swoje flagowe linie laptopów
- Ten adapter nie obsłuży dysków HDD PATA 2.5 cala - producent kłamie czy ja jestem głupi ?
- Przedłużacz USB-C działa w połowie
- Fujitsu LIFEBOOK E746
- Alternatywny nośnik do monitoringu zamiast HDD?
- Pendrive, ale dysk
- Dyski HDD SATA 2,5'' >2TB
- Funbox 10 - Czy miał już ktoś styczność z tym sagemowym sprzętem?
- Konwersja dysku z MBR na GPT
Najnowsze wątki
- 2025-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=
- 2025-01-31 Warszawa => Data Engineer (Tech Leader) <=
- 2025-01-31 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-31 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-31 Warszawa => Full Stack .Net Engineer <=
- 2025-01-31 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-31 Gdańsk => Programista Full Stack .Net <=