Witam,
Mam pewien problem. Postaram sie go omowic po krotce. Pisze program ktory dziala w roznych lokalizacjach, kazda lokalizacja ma 1 baze danych i kilka podlaczonych klientow. Chodzi mi teraz o to ze chcialbym zrobic programik ktory sobie chodzi w tle i pobiera aktualizacje. Problemu nie mam jezeli jest to tylko aktualizacja samego programu, wtedy jest go latwo podmienic. Chodzi mi o aktualizacja bazy danych, moze sia zdazyc ze bede potrzebowal zrobic jakas zmiane i robiac zmiany musze byc pewny ze nikt nie pracuje na bazie (i to tez umiem sprawdzic) ale nie chcialbym aby nikt sie nie polaczyl do bazy podczas gdy ja bede robil jej np. konwersje).
Zastanawialem sie sie nad takimi rozwiazaniami w obu przypadkach przy aktualizacji wyskoczy komunikat ze nalezy dokonac aktualizacji programu i wtedy uzytkownik wybiera ze chce aktualizowac.
-
Blokuje wszystkie tabele w bazie. Problem zostaje jeszcze z procedurami itp, ale zakladam ze ich nikt nie bedzie modyfikowal poniewaz nikt nie ma do nich dostepu. Po blokadzie moge wykonac wszystkie czynnosci na bazie, potem zwolnic blokade
-
To rozwiazanie przynajmniej wedlug mnie wydaje sie lepsze. Tworze specjalnego uzytkownika (UPDATER) ktory bedzie podlaczal sie do bazy. Moj program sprawdzi czy wszyscy sie wylogowali (powinien zostac tylko on), wtedy bedzie dokonywal aktualizacji. Natomiast w programie kilenta dam warunek ze jezeli jest podlaczony uzytkownik (UPDATER) to wtedy nastepuje rozlaczenie z baza i nie mozna sie zalogowac i wtedy bede mogl przeprowadzic aktualizacje.
Moze ktos ma doswiadczenie w tych sprawach i powie mi czy dobrze mysle i moge zastosowac ktores rozwiazanie, czy to moze tragedia i trzeba to zobic inaczej.
Zapomnialem dodac ze baza to FB 1.5
PS Problem z wykrywaniem zgodnosci wersji zostawie na inny raz :)