mySQL i odświeżanie danych

0

Witam,
w jaki sposób można sprawdzić czy dane w bazie mySQL uległy zmianie. Oczywiście chciałbym uniknąć rozwiązania polegającego na ponownym wysłaniu zapytania 'SELECT .....', bo musiał bym to robić co kilka sekund przy większej liczbie użytkowników kożystających z mojej aplikacji. Czy baza mySQL wysyła w ogóle takie informacje do komponentów dbExpress i czy jest w ogóle jakaś baz, która ma taki mechanizm?

0
Dice napisał(a)

w jaki sposób można sprawdzić czy dane w bazie mySQL uległy zmianie. Oczywiście chciałbym uniknąć rozwiązania polegającego na ponownym wysłaniu zapytania 'SELECT .....', bo musiał bym to robić co kilka sekund przy większej liczbie użytkowników kożystających z mojej aplikacji.

w MySQLu nie znam innej metody.
Można oczywiście dodać tabelę dodatkową, która wyglądała by mniej więcej tak

ChangeLog

*id
ColName
ChangeTime

i w momencie zmiany w jakiejś tabeli (najlepiej w trigerze) robić
UPDATE changelog SET changetime = now() WHERE colname = 'nazwa_aktualizowanej_tabeli'
a potem tylko odpytywać tą tabelę o czas ostatniej aktualizacji i poruwnywać go z tym, który pamiętała aplikacja

Czy baza mySQL wysyła w ogóle takie informacje do komponentów dbExpress

nie

czy jest w ogóle jakaś baz, która ma taki mechanizm?

z darmowych FB/IB i to nawet działa :)

0

dodaj ze triggery ma dopiero mysql 5.0 zeby kolega nie szukal na marne

0

w sieci lokalnej mam rozwiązanie polegające na rozsyłaniu pakietu UDP o zmianie danych w bazie.w przypadku jak jeden klient zmieni zawartość tabeli, to klient ten wysyła info w postaci pakietu UDP który może zawierać dane np. co się zmieniło,jaka tabela itp

0

jak juz tak plyniemy to mozemy zrobic aplikacje trojwarstwową, masz baze, masz SBD i masz klienta, lub wielu, i teraz wystarczy tylko SBD zrobic zmienna "nazwa_tabeli: boolean" i metode ktora zwraca dana informacje do klienta ktory sprawdza to co powiedzmy sekunde, oczywiscie mozna isc w druga strone, i np rejestrujac kazdego klienta w serwerze dcom, i po zmianie w tabeli starac sie wyslac info do kazdego klienta, ale z tym to juz troche wiecej roboty

0

to ja może inaczej zapytam - po co Ci taka funkcjonalność?
Czyżbyś chciał uszczęśliwić usera na siłę oferując mu automatyczne odświeżanie :>
Nie wiem jak inni ale ja bym chyba kompa razem z takim programem przez okno wywalił jakby mi się co sekundę dbgrid odświeżał

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