🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #81085

Re: Dziennik operacji

#81085
From: wloochacz
Date: Mon, 10 Jul 2017 13:49
45 lines
2199 bytes
W dniu 2017-07-10 o 12:20, konsul41@wp.pl pisze:
> W dniu 07-07-2017 o 17:10, Pancio pisze:
>> Witam,
>> Zaczynam pisac aplikacje w Delphi XE7, a za silnik bazy danych
>> wybralem MS SQL Express 2014. Aplikacja zaczyna bardzo ladnie mi sie
>> rozbudowywac, ale zapragnalem jednej rzeczy, do ktorej ni jak nie wiem
>> jak sie zabrac.
>> Chodzi mi o to, aby dla 3-4 tabel (choc moze i dla wszystkich)
>> tworzony byl swojego rodzaju plik dziennika. Wowczas widzialbym, jaka
>> byla historia zmian danych kolumn. W zasadzie nie potrzebuje nic
>> wiecej poza informacja z data operacji zmiany oraz o poprzedniej
>> wartosci danej kolumny.
>> Oczywiscie moge stworzyc dodatkowa tabele, ktora bedzie przychowywac
>> takie informacje, ale czy MS SQL robi to jakos z automatu, czy musze
>> "recznie" oprogramowac takie zdarzenia jak Insert, Update czy Delete.
>> Z gory dziekuje za jakies sugestie.
MSSQL posiada mechanizm CDC (google wie o co chodzi), ale nie dla wersji
Express, czyli o tym możesz zapomnieć.
Chcesz automat, to musiałbyś zmienić podejście do programowania DAC o
180 stopni. Co najmniej.
Dlaczego? Ponieważ np. mORMot oferuje podobne możliwości, a także
niektóre ORMy.

Kiedyś robiłem bieda wersję czegoś takiego, co sprowadzało się do
napisania generatora triggerów da określonych tabel (można było sobie
wybrać tabele i ich pola, które mają być monitorowane).
Dane lądowały w innej tabeli.
Potem tylko przeglądarka do tego.
Generalnie sporo pracy, jeśli ma to być zrobione dobrze...

Inny pomysł to obsłużenie tego przez aplikację w 100%; to może być dość
proste do zrobienia, ale trochę też zależy jak ta aplikacja jest napisana.

>> --
>> Pancio
>>
> Nie wiem czego używasz do łączenia z bazą, ale ZEOSY mają coś takiego
> jak SQLmonitor i wszystkie zapytania SQL lądują w pliku.
> Może to jest dla ciebie, nie koniecznie w samej bazie.
Fajnie, tylko znowu odpowiadasz nie do końca na temat.
Wyłuskanie z takiego logu informacji o tym, że w interesującej nas
tabeli pole X zmieniło wartość na Y2 z wartości Y1, jest praktycznie
niemożliwe. Przy okazji to książkowa rzeźba w ... mule, imho.

--
wloochacz

Message-ID: <596369d3$0$15194$65785112@news.neostrada.pl>
Path: polish.pugleaf.net!archive.newsdeef.eu!apf1.newsdeef.eu!news.usenet.farm!..!..!not-for-mail
References: <229b9869-138d-4149-a1b7-51f2e27b25d1@googlegroups.com> <596354e1$0$5148$65785112@news.neostrada.pl>