W związku z tym, że swego czasu nie uzyskałem odpowiedzi, ponawiam swoje pytanie. Otóż mój problem przedstawia się następująco:
Podczas uzupełniania indeksów w bazie IZA, zawsze przy pierwszych rekordach, a czasem podczas dalszej pracy, pojawia się błąd z następującym komunikatem:
Aparat bazy danych Microsoft Jet zatrzymał proces, ponieważ inny użytkownik próbuje jednocześnie zmienić te same dane
Próba przejścia do jakiejkolwiek inne rubryki generuje kilkakrotne ponowienie tegoż komunikatu, po czym po kilkunastu lub kilkudziesięciu kliknięciach na OK, błąd ustępuje. Naturalnie nikt nie próbuje zmieniać tych danych. Zdarza się że nawet nikt inny nie uzupełnia w tym czasie bazy.
Przypuszczam, że problem może wynikać z tego, że jeden z komputerów w sieci, na którym się też normalnie pracuje, jest serwerem.
Zwracam się prośbą o pomoc, ponieważ nasz informatyk od 2 lat potrafi rozwiązać tego problemu. Możliwe, że w ogóle nierozwiązywalnego?
Spróbujemy coś poradzić. Zakładam, ze problem istnieje na każdym komputerze, z którego wchodzi się do bazy.
Na początek (bazy zamknięte!) proponuję sprawdzić czy na serwerze w katalogu baz, w którym są pliki z danymi (np. izadane.mdb etc. w zależności jak macie system bazodanowy zorganizowany), czy nie ma przypadkiem pliku z rozszerzeniem *.ldb (izadane.ldb etc.). Jeśli jest - usunąć. Możliwe, że kiedyś wystąpił jakiś błąd i program nie zakończył poprawnie pracy. Przy próbie edycji może wyświetlać taki komentarz i niekoniecznie chodzi tu o drugiego użytkownika, tylko o równolegle działający gdzieś w tle proces edycji.
Jeśli z powyższym jest porzadek, spróbować można naprawić bazę. (Najpierw kopia zapasowa obowiązkowo!)
Wchodzimy do bazy. Z górnego Menu "Narzędzia" ---> "Narzędzia bazy danych" ---> Kompaktuj i napraw bazę danych. (Wg MS Office 2003; w wersji 2000 powinno być podobnie)
Parę słów na ten temat:
Narzędzie Kompaktuj i napraw
Narzędzie Kompaktuj eliminuje puste miejsce w istniejącej bazie danych, tworząc nową docelową bazę danych i kopiując każdy obiekt ze starej bazy danych do nowej. Jeśli zostanie wybrana opcja kompaktowania bazy danych do oryginalnej bazy danych o tej samej nazwie zamiast do nowej bazy danych, narzędzie Kompaktuj tworzy tymczasową bazę danych, eksportuje obiekty z oryginalnej bazy danych do tymczasowej bazy danych, usuwa oryginalną bazę danych i zmienia nazwę tymczasowej bazy danych na nazwę oryginalnej bazy danych.
Narzędzie Napraw próbuje naprawić w bazie danych tylko tabele, kwerendy i indeksy. Nie próbuje naprawić uszkodzonych formularzy, raportów, makr czy modułów. Poniżej podano listę akcji, które wykonuje narzędzie Napraw. ? Reorganizowanie stron tabeli, aby zostały umieszczone na sąsiednich stronach bazy danych. W wyniku tego zwiększa się wydajność, ponieważ tabele w bazie danych nie są już pofragmentowane.
? Zwolnienie nieużywanego miejsca na dysku, utworzonego po usunięciu obiektów i rekordów. Gdy obiekty lub rekordy są usuwane z bazy danych, miejsce przez nie zajmowane jest oznaczane jako dostępne dla nowych obiektów bazy danych. To oznacza, że jeśli baza danych nie zostanie skompaktowana, rozmiar bazy danych nigdy się nie zmniejszy. Zaleca się częste kompaktowanie baz danych zawierających często dodawane, usuwane i aktualizowane obiekty.
? Resetowanie zwiększającego się pola Autonumerowanie tak, że kolejna przydzielona wartość będzie o jeden większa od najwyższej wartości w pozostałych rekordach. Na przykład, jeśli wszystkie rekordy bazy danych zostały usunięte, po skompaktowaniu bazy danych wartość pola Autonumerowanie podczas dodawania nowego rekordu przyjmie wartość 1. Jeśli największą wartością pola Autonumerowanie będzie 50, po skompaktowaniu, podczas dodawania nowego rekordu pole przyjmie wartość 51. Należy zauważyć, że tak się stanie nawet wtedy, gdy rekordy zawierające wartości wyższe niż 50 zostały wcześniej dodane, ale przed kompaktowaniem usunięte.
? Ponowne generowanie statystyki tabel używanej z procesie optymalizacji kwerend. Te statystyki mogą po pewnym czasie stać się nieaktualne, zwykle wtedy, gdy została cofnięta transakcja lub jeśli baza danych nie była poprawnie zamknięta z powodu utraty zasilania lub awarii całkowitego zamknięcia programu korzystającego z aparatu Microsoft Jet przed wyłączeniem komputera.
? Flagowanie wszystkich kwerend, aby zostały ponownie skompilowane podczas następnego wykonania kwerendy. To jest ważne, ponieważ statystyka bazy danych może ulec zmianie i uprzednio skompilowane kwerendy mogą mieć nieprawidłowy plan kwerendy.
Baza danych nie może być otwarta przez innych użytkowników.
Odzyskiwanie uszkodzonej bazy danych
Następujące kroki przedstawiają ogólną metodę naprawiania uszkodzonej bazy danych: 1. Utwórz kopię uszkodzonego pliku bazy danych (mdb) w postaci kopii zapasowej.
2. Usuń plik ldb, jeśli jest obecny. Przed jego usunięciem należy zamknąć odpowiadający mu plik mdb.
Plik ldb jest używany do ustalania, które rekordy są zablokowane we współużytkowanej bazie danych i przez kogo. Jeśli baza danych jest otwarta dla współużytkowania, tworzony jest plik ldb o takiej samej nazwie, co odpowiadająca mu baza danych (mdb). Na przykład, jeśli zostanie otwarta (do współużytkowania) przykładowa baza danych Northwind.mdb w folderze c:\Msoffice\Access, w tym samym folderze zostanie automatycznie utworzony plik Northwind.ldb. Plik ldb jest automatycznie usuwany po zakończeniu pracy z bazą danych przez ostatniego użytkownika z wyjątkiem dwóch przypadków -- gdy ostatni użytkownik nie ma uprawnień do usuwania w folderze zawierającym plik mdb lub gdy baza danych jest uszkodzona. Plik ldb zawiera listę użytkowników, którzy mają otwartą bazę danych.
źródłoI na koniec - mało optymistyczne, ale miejmy nadzieję, że się nie potwierdzi:
Jeśli kompaktowanie i naprawa nie powiodą się, pojawi się odpowiedni komunikat. To będzie oznaczać, że uszkodzenia są poważne i nie mogą być usunięte.
Ewentualnie można jeszcze raz zaimportować tabele z pliku z danymi (tj. tu usunąć połączenia tabel z pliku programu bazy danych i raz jeszcze dokonać ich połączenia z danymi). Możliwe, że albo uszkodzony jest plik .mdb z danymi (chyba, że nie były zgłaszane ze strony NDAP jakiekolwiek błędy po wysłaniu danych), albo sam program iza.mdb. Nie sądzę, aby miało to związek ze strukturą sieci komputerowej i serwerem. U nas w AP również serwer plików wykorzystywany jest do regularnej pracy.
Problemem raczej mogłyby być kwestie stricte techniczne: karty sieciowe, przewody sieciowe (RJ45), routery, koncentratory, switche itp. Jeżeli podobne problemy nie występują w przypadku innych programów działających na linii klient<->serwer, lub baz, np. SEZAM (jak sądzę podobnie jest zorganizowany - plik z danymi na serwerze), to przyczyna na 99% tkwi w samej bazie IZA.
Proszę dać znać, czy cokolwiek z powyższego było brane pod uwagę. Jeśli nie - czy zadziałało. Może coś wykombinuję.
Pozdrawiam
Robert
APT O/W