Post by Krzysztof Pozorek(...)
Post by Krzysztof NaworytaNajprościej: użyj przycisku "cofnij" :)
Tak, to zdecydowanie zalecany sposob :-)
Post by Krzysztof NaworytaJeśli juz nieaktywny, to preglądnij MSysObjects w poszukiwaniu obiektu
nazwanego "~tmp..."
Prawdopodobnie to właśnie Twoja tabela. Następnie trzeba programowo
skopiować jej strukturę do nowej tabeli i przepisać do niej wsystkie
rekordy.
Gdzieś w necie jest kawałek kodu, który to robi.
Tak, to bardzo prosty sposob, ktory odzyskuje cala tabele. Nalezy jednak
pamietac, ze tabele ~tmp znikaja razem z zamknieciem bazy :-( Po ponownym
otwarciu pliku juz ich nie ma.
W niniejszym watku sytuacja jest jednak trudniejsza, bo nie tabela zostala
usunieta, ale rekordy z tej tabeli. Wtedy systemowe tabele ~tmp w ogole nie
sa tworzone.
Niestety aby odzyskac usuniete rekordy nalezy sie skontaktowac z jakas firma
(raczej zagraniczna), ktora spocjalizuje sie w odzyskiwaniu takich danych.
Nie mam pod reka linku (musisz pogooglac), ale sa takie serwisy. Kiedys
nawet czytalem jedna z takich ofert, ale niestety w przypadku usuniecia
czesci rekordow z tabeli nie_gwaratowali_odzyskania wszystkich danych. 100%
danych umieli odzyskac w przypadku, jesli usunieta zostala cala tabela.
Moje wlasne proby odzyskiwania usunietych rekordow doprowadzily mne do
wniosku, ze w tym przypadku Access niestety nie markuje tylko usunietych
rekordow (jakby sie wydawalo, skoro rozmiar bazy sie nie zmiejsza), ale
naprawde je czesciowo usuwa w dosc, jak dla mnie przypadkowy sposob, zalezny
od ukladu danych w bloku 4kb.
Przykro mi, ale to nie sa najlepsze dla Ciebie wiesci :-( Nawet jesli nie
zamknales jeszcze bazy, to ~tmp masz tylko dla tabel, ktore usunales w
calosci.
K.P.
Dziękuję Panowie!
Często robię kopie, więc straty minimalne i bardziej zależało mi na upewnieniu
się że się nie da.
Zamiast guglać od razu za kopię …
Mój stan wiedzy w tej kwestii:
Access zapisuje typowo 20 - 30 rekordów na stronie (data page).
Przyjmijmy dla prostoty liczenia:
25 rekordów na każdej stronie, tabela ma powiedzmy 100.000 rekordów wiec cała
tabela jest zapisana na 4.000 stronach.
Gdy usuniemy WSZYSTKIE rekordy to access robi tak:
Kopiuje pierwszy wywalony rekord na pozostałe rekordy na danej stronie.
Gdy wyślemy bazę to specjalistów odzyskiwania danych to mogą odzyskać tylko
4000 rekordów (po jednym z każdej strony), reszta czyli 96.000 to kopie tych
4.000 pierwszych rekordów.
Podsumowując:
Po skasowaniu WSZYSTKICH rekordów z tabeli możemy odzyskać co 4000czny rekord!
Po skasowaniu tabeli z rekordami możemy odzyskać całą tabelę ze wszyskimi
rekordami (warunek nie zamknięta baza po usunięciu).
Po zmianie w rekordzie (ale nie usunięcie rekordu) można COFNIJ .
Po zmianie w drugim rekordzie COFNIJ dotyczy tylko zmian w ostatnim rekordzie
(poprzednie rekordy NIE).
Nie daje mi jednak spać jedno!
Przy usuwaniu niewielu rekordów z tabeli Access nie czyni problemów.
Ale gdy usuwamy dużo rekordów zgłasza komunikat „że tego nie da się cofnąć!”
Zatem ile usuwanych rekordów można przywrócić i JAK, bo w moim A2K nie
natknąłem się na punkt zaczepienia.
Pozdrawiam
bory
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl