Cuda, wianki

Przecierałem oczy ze zdumienia, oglądając zawartość bazy danych, utworzonej za pomocą MS Access w wersji 97. Interweniowali użytkownicy, twierdząc, iż wprowadzone przez nich rekordy znikają z pola widzenia, i oczywiście mieli rację. Wszakże sytuacja nie była na pierwszy rzut oka zbyt klarowna nawet dla mnie, jako autora rozwiązania.

Przecierałem oczy ze zdumienia, oglądając zawartość bazy danych, utworzonej za pomocą MS Access w wersji 97. Interweniowali użytkownicy, twierdząc, iż wprowadzone przez nich rekordy znikają z pola widzenia, i oczywiście mieli rację. Wszakże sytuacja nie była na pierwszy rzut oka zbyt klarowna nawet dla mnie, jako autora rozwiązania.

Po wnikliwej analizie zagubione rekordy odnalazły się w innym pliku bazy, gdzie w żadnym przypadku nie powinny były się znaleźć. Po stwierdzeniu tego faktu, byłbym skłonny uwierzyć w cuda. Logika nakazywała jednak zbadać racjonalność owych zdarzeń. Po wykluczeniu błędów w moim oprogramo- waniu zarządzającym, przyjrzałem się wnikliwiej środowisku.

Sytuacja, o jakiej piszę, jest powtarzalna i można z łatwością zasymulować ją "na piechotę", nie posługując się przy tym warstwą oprogramowania VB, a jedynie Accessem w najczystszej postaci. Do tego celu wystarczy utworzyć dwa pliki typu mdb o odmiennych nazwach (np. first.mdb oraz second.mdb). W nich tworzymy identyczne, co do nazw i struktury tabele (np. danetestowe). W każdej z tabel wprowadzamy inne dane. Następnie kreujemy nadrzędny plik (nazwijmy go np. example.mdb), mający odwoływać się do założonych wcześniej tabel na zasadzie ich przyłączania. Po wstępnych przygotowaniach uruchamiamy Access i otwieramy plik example.mdb. Przyłączamy do niego tabelę danetestowe z pliku first.mdb i oglądamy ewentualnie modyfikujemy jej zawartość. Następnie, nie zamykając tej aplikacji, uruchamiamy Access po raz drugi, otwieramy ponownie plik example.mdb i przyłączamy tabelę danetestowe, tym razem z pliku second.mdb. Przełączając się pomiędzy aktywnymi aplikacjami Accessa, obserwujemy zawartość podłączonych tabel. Na chłopski rozum wydaje się, że skoro przyłączone zostały tabele o różnych zawartościach, z odmiennych plików, to w każdym z aktywnych okienek powinniśmy widzieć inne dane. Nic z tego. Dla obu uruchomionych instancji Accessa obowiązujące staje się ostatnio wykonane przyłączenie. Stąd już tylko mały krok do zaburzenia integralności danych. Jedynym zabezpieczeniem w tego typu przypadkach, przed wielokrotnym uruchamianiem tej samej aplikacji na stacji roboczej, jest wyłączenie trybu współużytkowania dla pliku głównego - example.mdb.

Przypadek ten udowodnił ponownie, że błędy w oprogramowaniu istnieją zawsze, a ich ujawnienie zależy tylko od okoliczności. Odkrycie dysfunkcji następuje nieraz po wielu latach, a w szczególnie sprzyjających sytuacjach może nigdy nie ujrzeć światła dziennego.

Mimo wszystko lubię Accessa i nadal będę go używał, nie zważając na to, że w środowisku profesjonalistów wielu uważa za wstyd posługiwanie się tego typu narzędziem. Moje doświadczenia - a są one dosyć różnorodne - pokazują, że Access dla niewielkich zasobów danych jest rozwiązaniem tanim i niezwykle efektywnym.

Pozostaje jedynie żałować, że cuda się nie zdarzają, na czym zapewne cierpi jakość naszego życia we wszelkich aspektach.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200