2011-11-22 18 views
5

Mam bazę danych dostępu, która znajduje się na serwerze xi jest uruchomiona na serwerze y. Jedna z moich stron internetowych uzyskuje dostęp do danych z bazy danych dostępu. Jeśli ktoś ma otwartą bazę danych dostępu, mówi użytkownikowi końcowemu w naszej sieci, strony internetowe zawodzą z ... już otwartą wyłącznie przez komunikat o błędzie innego użytkownika.Baza danych dostępu już otwarta wyłącznie przez innego użytkownika

Utworzono lokalną bazę danych dostępu i wykorzystałem połączone tabele w celu uzyskania dostępu do tabel w ten sposób. Nawet wciąż otrzymuję już otwarty wyłącznie przez błąd innego użytkownika. Jeśli przejdę przez Eksploratora Windows i przejdę do serwera x i otworzę bazę danych, mogę bez problemu. Tak więc moje pytanie brzmi: jak mogę symulować ten sam typ łączności z bazą danych bez zgłaszania błędu, jest to kwestia uprawnień do bazy danych dostępu lub czegoś w moim łańcuchu połączeń, który pozwoliłby mi uzyskać dostęp do bazy danych.

Odrzuca błąd podczas komendy connection.open Zastanawiam się, czy jest to związane z uprawnieniami, czy też coś, co muszę dodać do mojego ciągu połączenia. Udzielam pełnej kontroli dla aplikacji IIS AppPool \ w katalogu lokalnym, w którym znajduje się moja lokalna instancja bazy danych dostępu, ale nie wydaje się, aby to miało znaczenie.

Moje ciąg połączenia wygląda następująco:

Private Shared connSheriff As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\serverx\directory\Access\MyDatabase.mdb;Jet OLEDB:Database Password=property;") 
+0

Czy jesteś otwarcie bazy danych jako administrator? Jeśli podejrzewasz ciąg połączenia, prawdopodobnie warto go opublikować. – Simon

+0

Private Shared connSheriff Jako nowy OleDbConnection ("Dostawca = Microsoft.Jet.OLEDB.4.0; Źródło danych = \\ serwerx \ katalog \ Dostęp \ MyDatabase.mdb; Jet OLEDB: Hasło bazy danych = właściwość;") –

+1

Możesz rozważyć oznaczenie tagiem pytanie z językiem programowania internetowego, którego używasz, aby dotrzeć do szerszego grona odbiorców. Zalecam również wstawienie znaków kreski, interpunkcji i być może innych formatów w pytaniu, aby uczynić je bardziej czytelnymi. – HK1

Odpowiedz

1

Istnieje kilka options within the mdb że zmienić sposób baza danych jest otwierany domyślnie, to powinien być pierwszym porcie zawinięcia szczególnie ustawienie „domyślny tryb otwarty” na „wspólną ".

Już podzieliłeś bazę danych (tabele danych we współużytkowanym zapleczu, połączone tabele i reszta w interfejsie użytkownika). Upewnij się, że każdy użytkownik używa oddzielnej kopii interfejsu użytkownika mdb, w przeciwnym razie dostaniesz problem z blokowaniem.

Istnieje przełącznik wiersza poleceń (/ excl), który ustawia tryb wyłączności, ale po prostu pominąć to, aby otworzyć db udostępniony, więc wątpię, to jest problem.

Prawdopodobnie już o tym wiedzą, ale „Shared” modyfikator nie ma nic wspólnego z podziału pomiędzy aplikacjami lub użytkowników, ale akcje zmiennej połączenia między instancjami klasy (odpowiednik C# jest „statyczne”)

Powiązane problemy