[FB] Coś jakby połączenie procedury z triggerem

Odpowiedz Nowy wątek
2006-10-30 15:44
0

Potrzebuję uzyskać taki mechanizm.
Jest sobie jakaś baza na Firebirdzie.

Przed każdym insertem i updatem(obojętnie do jakiej tabeli), muszę odpalić procedurę składowaną, która: sprawdzi wartość jakiegoś argumentu*, a następnie wykona pewne operacje, wiedząc, czy chodzi o update, czy insert i znając nazwę tabeli, w której zmiana zachodzi.

*argument(zmienna) musi być jakby globalny dla całej bazy.

Chodzi o to, że mam bazodanowy program. Jest sobie baza globalna(główna) i lokalna(dane do niej są co jakiś czas importowane z bazy głównej).

Następnie okazuje się w pewnym momencie, że połączenie z bazą główną zostało utracone(np. nie ma internetu). Teraz muszę przekazać do bazy lokalnej jakąś zmienną mówiącą o tym, że połączenia z bazą główną nie ma.

I teraz przy każdym update i insert, ta moja procedura sprawdza tą zmienną i jeśli połączenia z bazą główną nie ma to wtedy wykonuje pewne operacje, jeśli jest to nic nie robi.

Nie mam pojęcia, jak coś takiego osiągnąć. Mam nadzieję, że się da.

Pozostało 580 znaków

2006-10-30 15:54
0

Tak na zsybko to przychodzi mi na mysl jedna rzecz zrob sobie tabele z parametrami, jezeli nie bedzi epolaczenia z bazla glowna to ustawisz flage na jarsosc np false a w trigersie bedziesz sprawdzal czy jest false czy true i wtedy bedziesz sobie odpala co tylko bedizesz chcial (oczywiscie w ramach rozsadku)

Pozostało 580 znaków

2006-10-30 15:59
0
cobra napisał(a)

Tak na zsybko to przychodzi mi na mysl jedna rzecz zrob sobie tabele z parametrami, jezeli nie bedzi epolaczenia z bazla glowna to ustawisz flage na jarsosc np false a w trigersie bedziesz sprawdzal czy jest false czy true i wtedy bedziesz sobie odpala co tylko bedizesz chcial (oczywiscie w ramach rozsadku)

Chodzi mi o to, że chce uniknąć stosowania triggerów. Tzn. w takiej sytuacji, musiałbym zmieniać trigger w każdej tabeli.

Wyjaśnię to inaczej. Załóżmy, że jest trigger globalny. Tzn. nie jest założony na żadną konkretną tabelę, tylko na bazę. Taki trigger zna nazwę bazy, w której robione są zmiany. I coś takiego chcę osiągnąć.

Pozostało 580 znaków

2006-10-30 19:29
0

Juchas poczytaj o replikacji i zamiast pisać coś, co jak widać Ci nie idzie zastosuj np. http://fibre.sourceforge.net/ lub jakiś komercyjny odpowiednik

BTW. nie ma czegoś takiego jak globalny trigger - pisząc coś takiego nie rozumiesz podstawy działania i sensu istnienia wyzwalaczy. Nie krytykuję Cię ale widzę, że idziesz dość ostro w stronę baz ale nie masz żadnych podstaw teoretycznych, a bez tego na prawdę będzie Ci ciężko zrobić jakąkolwiek bazę, która nie będzie się wykładać lub zdychać przy większej ilości danych lub wiekszym obciążeniu


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-10-31 11:40
0
Misiekd napisał(a)

Juchas poczytaj o replikacji i zamiast pisać coś, co jak widać Ci nie idzie zastosuj np. http://fibre.sourceforge.net/ lub jakiś komercyjny odpowiednik

Chodzi o to, że muszę mieć własny mechanizm replikacji, bo wszystkie inne, które testowałem nie działają tak, jak powinny w moim programie.

BTW. nie ma czegoś takiego jak globalny trigger - pisząc coś takiego nie rozumiesz podstawy działania i sensu istnienia wyzwalaczy.

Rozumiem, ale nie wiedziałem, czy coś takiego istnieje, czy nie, więc zapytałem, bo bardzo by mi się przydało :)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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