[delphi] synchro baz danych

0

Witam, jestem poczatkujacym programista delphi, jednak mozna smialo powiedziec ze cos tam umiem... chyba.
Kolega zauwazyl to i zapytal sie czy nie moglbym mu napisac jakiejs prostej aplikacji do synchronizacji dwoch baz danych, prawdopodobnie na zasadzie ze w jednej sa jakies wpisy a w drugiej brakuje lub jest za malo i trzeba powyrownywac...
w skrocie przeniesienie danych w jedną stronę z mssql do mysql....
odpowiedzialem mu ze na dzien dzisiejszy nie jestem w stanie pomoc, gdyz z bazami nie mialem absolutnie zadnej stycznosci.
Pytanie do Was koledzy, jak byscie mogli mi z tym pomoc, doradzic, jakie komponenty w delphi do obslugi bazy, od czego zaczac, prosze o pomoc, chcialbym sie z tym tematem zmierzyc zeby czegos nowego sie nauczyc, rodzaje baz podalem wyzej, pozdrawiam

0

Synchronizacja danych jest tematem ciekawym i zawsze można go skomplikować.
Z tego co pamiętam był w Delphi 7 komponent BatchMove, który jeżeli miałeś otwarte docelową i źródłową tabelę o odpowiadających sobie strukturach, to przepisywał, dodawał, uzupełniał itd. Nie było to zbyt wyrafinowane rozwiązanie.
Obecnie w pracując w Delphi 2009 nie znalazłem takiego komponentu, zapewne dlatego, że przestano wspierać BDE (Borland Database Engine).
Na swoje potrzeby piszę własne rozwiązania i przynajmniej mam kontrolę nad aktualizacją rekordów.

0

Większość nowoczesnych baz danych posiada wewnętrzne możliwości umożliwiające utworzenie kopii bazy danych w taki sposób, że wszystkie operacje zapisu (dotyczące normalnego korzystania z bazy) są wykonywane jednocześnie na obu bazach (synchronizacja). Ma to zapewnić bezpieczeństwo przed awarią jednej z kopii. Różne są sposoby realizacji takich kopii. Prawidłową reakcją powinno być automatyczne przełaczanie do odczytu i zapisu z kopii działającej (w przypadku awarii), co jest "przezroczyste" dla aplikacji łączącej się z bazą, czyli nie wymagające żadnej interwencji w postaci zmiany w kodzie żródłowym. Na przykład awaria zasilania w czasie zapisu do bazy może spowodować uszkodzenie pliku bazy danych. Może być tez awaria sprzętowa dysku twardego. Przy maksymalnej ostrożności zaleca się, by poszczególne kopie bazy danych były umieszczone na różnych komputerach (lub serwerach plikowych), które są podłączone do różnych źródeł zasilania. Tworzenie kopii wykonuje się na przykład z panelu zarządzania bazą danych poleceniem CREATE SHADOW.

0
Mariusz Jędrzejowski napisał(a)

bzdury
czy możesz następnym razem zanim zaczniesz pisać kompletnie nie na temat chociaż przeczytać pierwszy post??

0

witam, temat aktualny caly czas....

w moim delphi 7 jest komponent BatchMove, z szybkiej obserwacji zoabczylem tylko ze jest on niewizualny.
szkoda ze w faq delphi na 4programmers nic konkretnego nie moglem znaleŹĆ na temat mojego problemu.

0
Misiekd napisał(a)
Mariusz Jędrzejowski napisał(a)

bzdury
czy możesz następnym razem zanim zaczniesz pisać kompletnie nie na temat chociaż przeczytać pierwszy post??
To jest związane z tematem i może się też przydać.

0
Mariusz Jędrzejowski napisał(a)

To jest związane z tematem i może się też przydać.
dokładnie tak samo jak i częstotliwość występowania plam na słońcu - to też pytaczowi opiszesz?

Co do pytania to aby nie było, że OT
Najprościej jakbyś miał w mssqlu w danej tabeli dodatkową kolumnę typu bool gdzie zapisywał byś czy dany rekord jest wysłany True a po zmianie zmieniasz na False np. w triggerze. Nowy rekord z automatu dostaje False, natomiast przy usunięciu musiał byś np. zapisywać do osobnej tabelki te, które są do usunięcia.

Możesz też poszukać jakichś programów, które to robią. Tylko że to będą raczej płatne rozwiązania

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