Wielostanowiskowa aplikacja bazodanowa

0

Napisałem aplikacje bazodanową łączącą się z serwerem MySQL przy użyciu komponentów ZEOS. Chciałbym przerobić tą aplikację tak aby możliwa była praca na wielu stanowiskach równocześnie. Czy jest jakiś bardziej wyrafinowany sposób (oprócz odświeżania dataset'ów co określoną liczbę sekund) aby gdy dane zostaną zaktualizowane z jednego stanowiska automatycznie odświeżyły się w dataset'cie na drugim stanowisku? Analogicznie jak poradzić sobie z sytuacją gdzie 2 użytkowników chciałoby równocześnie edytować jeden rekord?

0

co do drugiego, to ja tak robie, ze np rekord ma pole "used_by" gdzie wrzucam id usera, który aktualnie edytuje dany rekord. Dzieki temu jak ktoś inny będzie go chciał edytować, to sprawdzam czy used_by=0, jeśli tak, to otwieram edycje, jak nie to komunikat i ew tryb read_only.

0

na samym sql'u tego nie zrobisz bo musiał byś zaangażować aplikację serwer która by monitorowała na jeżeli użytkownik 1 zmieni coś w rekordzie 32 to wysyłając nową ;inijkę do programu, on modyfikuje to w sql'u i index tej linijki wysyła do pozostałych użytkowników info, żeby program użytkownika 2,3 itd pobrał nowy rekord z bazy danych, ponadto oznaczenie kto, co aktualnie edytuje żeby wyeliminować że nad jednym rekordem pracują 2 osoby, ew zrobić backupy zmienionych wpisów, by uniknąć straty w przypadku dużej modyfikacji jak by się komuś przypadkowo wzięło [Ctrl+A] [Delete].
Jeżeli chodzi o sam sql to tylko odświeżanie bez przerwy czego nie polecam.

0

Zrobisz to w Firebird tam masz dostępne Events.

0
misiakufal napisał(a)

co do drugiego, to ja tak robie, ze np rekord ma pole "used_by" gdzie wrzucam id usera, który aktualnie edytuje dany rekord. Dzieki temu jak ktoś inny będzie go chciał edytować, to sprawdzam czy used_by=0, jeśli tak, to otwieram edycje, jak nie to komunikat i ew tryb read_only.
Co sprawdzi się do czasu crashu aplikacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1