Podręcznik użytkownika Anuluj

Rozwiązywanie problemów z połączeniami z bazą danych

 

 

Rozwiązywanie problemów z uprawnieniami, komunikaty o błędach Microsoft, komunikaty o błędach MySQL w programie Dreamweaver.

Uwaga:

Interfejs użytkownika w programie Dreamweaver i nowszych wersjach został uproszczony. Dlatego począwszy od wersji Dreamweaver niektóre opcje opisane w tym artykule mogą nie być dostępne. Więcej informacji zawiera ten artykuł.

Rozwiązywanie problemów z uprawnieniami

Jednym z najczęstszych problemów jest brak wystarczających przyzwoleń do folderu lub pliku. Jeżeli baza danych znajduje się na komputerze z systemem Windows 2000 lub Windows XP, a podczas próby wyświetlenia dynamicznej strony w przeglądarce albo w widoku aktywnym występuje błąd, to może on wynikać z problemu z przyzwoleniami.

Konto Windows, które próbuje uzyskać dostęp do bazy danych, nie ma wystarczających przyzwoleń. Może to być albo anonimowe konto Windows (domyślnie IUSR_nazwakomputera) albo konto konkretnego użytkownika, jeżeli strona została zabezpieczona i wymaga dostępu uwierzytelnianego.

Musisz zmienić przyzwolenia tak, aby nadać kontu IUSR_nazwakomputera) właściwe uprawnienia i zezwolić serwerowi WWW na dostęp do pliku bazy danych. Ponadto folder, który zawiera plik bazy danych, również musi mieć pewne przyzwolenia ustawione tak, aby umożliwiać zapis w tej bazie danych.

Jeżeli dostęp do strony ma być anonimowy, nadaj kontu IUSR_nazwakomputera pełne prawa dostępu do folderu i pliku bazy danych, zgodnie z opisaną poniżej procedurą.

Ponadto, jeżeli ścieżka do bazy danych jest definiowana za pomocą standardu UNC (\\Serwer\Udział), to pamiętaj o przyznaniu pełnego dostępu dla konta IUSR_nazwakomputera w przyzwoleniach udziału. Ten krok należy wykonać nawet wtedy, gdy udział znajduje się na lokalnym serwerze WWW.

Jeżeli skopiujesz bazę danych w inne miejsce, to może nie odziedziczyć przyzwoleń z folderu docelowego. Wówczas trzeba zmienić przyzwolenia dla tej bazy.

Weryfikowanie lub modyfikowanie przyzwoleń do pliku bazy danych (Windows XP)

  1. Musisz mieć uprawnienia administratora na komputerze, na którym wykonujesz tę procedurę.
  2. Odszukaj plik lub folder z bazą danych w Eksploratorze Windows. Kliknij ten plik lub folder prawym przyciskiem myszy i wybierz polecenie Właściwości.
  3. Wybierz zakładkę Zabezpieczenia.
    Uwaga:

    Ten krok należy wykonać tylko wtedy, jeżeli masz system plików NTFS. Jeżeli masz system plików FAT, to w oknie dialogowym nie będzie zakładki Zabezpieczenia.

  4. Jeżeli na liście grup lub nazw użytkownika nie ma konta IUSR_nazwakomputera, kliknij przycisk Dodaj i dodaj to konto.
  5. W oknie dialogowym Wybierz użytkowników lub grupy kliknij przycisk Zaawansowane.

    Okno dialogowe zmieni się, pokazując więcej opcji.

  6. Kliknij Lokalizacje i wybierz nazwę komputera.
  7. Kliknij Znajdź teraz, aby wyświetlić listę nazw kont związanych z tym komputerem.
  8. Wybierz konto IUSR_nazwa komputera i kliknij przycisk OK; potem jeszcze raz kliknij przycisk OK, aby zamknąć okno dialogowe.
  9. Aby nadać kontu IUSR pełne przyzwolenia, zaznacz opcję Pełna kontrola i kliknij przycisk OK.

Weryfikowanie lub modyfikowanie przyzwoleń do pliku bazy danych (Windows 2000)

  1. Musisz mieć uprawnienia administratora na komputerze, na którym wykonujesz tę procedurę.
  2. Odszukaj plik lub folder z bazą danych w Eksploratorze Windows. Kliknij ten plik lub folder prawym przyciskiem myszy i wybierz polecenie Właściwości.
  3. Wybierz zakładkę Zabezpieczenia.
    Uwaga:

    Ten krok należy wykonać tylko wtedy, jeżeli masz system plików NTFS. Jeżeli masz system plików FAT, to w oknie dialogowym nie będzie zakładki Zabezpieczenia.

  4. Jeżeli na liście kont Windows w oknie Uprawnienia do pliku nie ma konta IUSR_nazwakomputera, kliknij przycisk Dodaj i dodaj to konto.
  5. W oknie dialogowym Wybierz użytkowników, komputery lub grupy, wybierz nazwę komputera z menu Szukaj w, aby wyświetlić listę nazw kont skojarzonych z tym komputerem.
  6. Wybierz konto IUSR_nazwakomputera i kliknij Dodaj.
  7. Aby nadać konto IUSR z pełnymi przywilejami, wybierz opcję Pełna kontrola z menu Typ dostępu i kliknij przycisk OK.

    Aby zwiększyć bezpieczeństwo, można ustawić przyzwolenia w taki sposób, aby wyłączyć przyzwolenie odczytu dla folderu WWW, który zawiera bazę danych. Przeglądanie tego folderu będzie niedozwolone, ale strony WWW będą miały dostęp do bazy danych.

    Więcej informacji o koncie IUSR i przyzwoleniach na serwerze WWW można znaleźć w następujących artykułach TechNote w Centrum pomocy technicznej firmy Adobe:

Rozwiązywanie problemów: komunikaty o błędach firmy Microsoft

Wymienione poniżej komunikaty o błędach, zgłaszane przez rozwiązania firmy Microsoft, mogą wystąpić podczas żądania dynamicznej strony z serwera, jeżeli używa się produktu IIS (Internet Information Server) z systemem bazy danych Microsoft, np. Access lub SQL Server.

Uwaga:

Firma Adobe nie świadczy pomocy technicznej do oprogramowania innych firm, takiego jak Microsoft Windows czy IIS. Jeżeli podane tu informacje nie pozwalają rozwiązać problemu, skontaktuj się z działem pomocy technicznej firmy Microsoft lub odwiedź serwis internetowy Microsoft poświęcony pomocy technicznej: http://support.microsoft.com/

Więcej informacji o błędach 80004005 podano w dokumencie „INFO: Troubleshooting Guide for 80004005 Errors in Active Server Pages and Microsoft Data Access Components (Q306518)” w serwisie firmy Microsoft pod adresem http://support.microsoft.com/default.aspx?scid=kb;pl-pl;Q306518.

[[Odniesienie]80004005 — Nie znaleziono nazwy źródła danych ani nie wskazano sterownika domyślnego]

Ten błąd występuje podczas próby wyświetlenia strony dynamicznej w przeglądarce albo w widoku aktywnym. Treść komunikatu o błędzie może być inna, w zależności od bazy danych i serwera WWW. Inne odmiany tego błędu to m. in.:

  • 80004005 — Nie powiodła się operacja SQLSetConnectAttr sterownika

  • 80004005 — Błąd ogólny. Nie można otworzyć klucza rejestru 'DriverId'

    Oto potencjalne przyczyny i rozwiązania:

  • Strona nie może znaleźć nazwy DSN. Sprawdź, czy utworzono nazwę DSN zarówno na serwerze WWW, jak i na komputerze lokalnym.

  • Nazwa ta mogła zostać skonfigurowana jako nazwa DSN użytkownika, a nie systemowa nazwa DSN. Usuń nazwę DSN użytkownika i zastąp ją systemową nazwą DSN.

Uwaga:

Jeżeli nie usuniesz nazwy DSN użytkownika, to powielone nazwy DSN spowodują nowy błąd ODBC.

Jeżeli używasz programu Microsoft Access, to plik bazy danych (.mdb) może być zablokowany. Blokada może wynikać z faktu, że inna nazwa DSN korzysta właśnie z tej bazy danych. Otwórz Eksplorator Windows i odszukaj plik blokady (.ldb) w folderze, który zawiera plik bazy danych (.mdb). Usuń plik .ldb. Jeżeli inna nazwa DSN wskazuje ten sam plik bazy danych, usuń ją, aby uniknąć w przyszłości występowania tego błędu. Po wprowadzeniu zmian uruchom ponownie komputer.

[[Odniesienie]80004005 — Nie można użyć „(nieznany)”; plik jest już w użyciu]

Ten błąd występuje podczas próby wyświetlenia strony dynamicznej w przeglądarce albo w widoku aktywnym, gdy używana jest baza danych Microsoft Access. Inna odmiana tego komunikatu o błędzie to “80004005 — Mechanizm bazy danych Microsoft Jet nie może otworzyć pliku (nieznany).”

Przyczyną błędu jest prawdopodobnie problem z przyzwoleniami. Oto konkretne przyczyny i rozwiązania:

  • Konto, z którego korzysta program Internet Information Server (na ogół jest to konto IUSR) może nie mieć prawidłowych przyzwoleń w systemie Windows do korzystania z plikowej bazy danych albo z folderu, który zawiera plik bazy. Sprawdź przyzwolenia konta, z którego korzysta IIS (IUSR) w menedżerze użytkowników.

  • Możesz nie mieć przyzwoleń do tworzenia lub usuwania plików tymczasowych. Sprawdź przyzwolenia do pliku i do folderu. Upewnij się, czy masz przyzwolenia do tworzenia lub usuwania plików tymczasowych. Pliki tymczasowe są na ogół tworzone w tym samym folderze, co baza danych. Jednak taki plik może być tworzony również w innych folderach, np. /Winnt.

  • W Windows 2000 konieczne może być zmodyfikowanie limitu czasu w nazwie DSN do bazy danych Access. Aby zmienić wartość limitu czasu, wybierz Start > Ustawienia > Panel sterowania > Narzędzia administracyjne > Źródła danych (ODBC). Kliknij zakładkę System, zaznacz odpowiednią nazwę DSN i kliknij przycisk Konfiguruj. Kliknij przycisk Opcje i zmień wartość opcji „Limit czasu strony” na 5000.

    Jeżeli nadal występują problemy, zapoznaj się z następującymi artykułami Microsoft Knowledge Base:

  • PRB: 80004005 „Couldn't Use ‘(unknown)’; File Already in Use” pod adresem http://support.microsoft.com/default.aspx?scid=kb;pl-pl;Q174943.

  • PRB: „Microsoft Access Database Connectivity Fails in Active Server Pages” pod adresem http://support.microsoft.com/default.aspx?scid=kb;pl-pl;Q253604.

  • PRB: „Error: Cannot Open File Unknown Using Access” pod adresem http://support.microsoft.com/default.aspx?scid=kb;pl-pl;Q166029.

[[Odniesienie]80004005 — Niepowodzenie logowania ()]

Ten błąd występuje podczas próby wyświetlenia strony dynamicznej w przeglądarce albo widoku aktywnym, gdy używana jest baza danych Microsoft SQL Server.

SQL Server generuje ten błąd, jeżeli nie zaakceptuje albo nie rozpozna wysłanego konta bądź hasła logowania (gdy używasz standardowych zabezpieczeń), albo jeżeli konto Windows nie jest odwzorowane w koncie SQL (jeżeli używasz zabezpieczeń zintegrowanych).

Oto potencjalne rozwiązania:

  • Jeżeli używasz standardowych zabezpieczeń, to podana nazwa konta i hasło mogą być nieprawidłowe. Spróbuj użyć konta i hasła administratora i (UID="sa" i brak hasła), które musi zostać zdefiniowane w wierszu z ciągiem połączenia. (Nazwy DSN nie przechowują nazw i haseł użytkownika).

  • Jeżeli używasz zintegrowanych zabezpieczeń, sprawdź, jakie konto Windows zostało użyte do wywołania tej strony i sprawdź, czy jest przypisane do konta SQL.

  • SQL Server nie dopuszcza podkreśleń w nazwach kont SQL. Jeżeli ktoś ręcznie odwzoruje konto IUSR_nazwakomputera w koncie SQL o takiej samej nazwie, logowanie nie powiedzie się. Konto, którego nazwa zawiera podkreślenie, należy odwzorować w koncie SQL o nazwie bez podkreślenia.

[[Odniesienie]80004005 — Operacja musi używać zapytania, które można uaktualniać]

Ten błąd występuje, gdy jakieś zdarzenie uaktualnia zestaw rekordów albo wstawia do niego dane.

Oto potencjalne przyczyny i rozwiązania:

  • Przyzwolenia do folderu zawierającego bazę danych są zbyt restrykcyjne. Przyzwolenia konta IUSR muszą być ustawione tak, by dopuszczały odczyt i zapis.

  • W rezultacie przyzwolenia do samego pliku bazy danych nie da pełnych uprawnień do zapisu i odczytu.

  • Baza danych może się znajdować poza katalogiem Inetpub/wwwroot. Chociaż można wyświetlać i przeszukiwać dane, ich uaktualnianie nie będzie możliwe, dopóki baza nie zostanie umieszczona w katalogu wwwroot.

  • Zestaw rekordów jest oparty na zapytaniu, którego nie można uaktualniać. Dobrym przykładem zapytań w bazie danych, których nie można uaktualniać, są sprzężenia. Zmień strukturę zapytań w taki sposób, aby można je było uaktualniać.

    Więcej informacji zawiera artykuł „PRB: ASP ‘Error The Query Is Not Updateable’ When You Update Table Record” w serwisie Microsoft Knowledge Base pod adresem http://support.microsoft.com/default.aspx?scid=kb;pl-pl;Q174640.

[[Odniesienie]80040e07 — Niezgodność typu danych w wyrażeniu kryteriów]

Ten błąd występuje, gdy serwer próbuje przetworzyć stronę zawierającą zachowanie serwerowe Wstaw rekord lub Uaktualnij rekord, które usiłuje ustawić wartość kolumny Data/godzina w bazie danych Microsoft Access na pusty ciąg ("").

W programie Microsoft Access zachodzi rygorystyczna kontrola typu danych. Wartościami poszczególnych kolumn rządzą restrykcyjne reguły. Pustego ciągu z zapytania SQL nie można zapisać w kolumnie Data/godzina w bazie danych Access. Obecnie jedynym znanym obejściem tego problemu jest unikanie uaktualniania kolumn Data/godzina w bazach Access pustymi ciągami ("") oraz innymi wartościami spoza zakresu dopuszczalnego dla tego typu danych.

[[Przykład] 80040e10 — Za mało parametrów]

Ten błąd występuje, gdy kolumna podana w zapytaniu SQL nie istnieje w tabeli bazy danych. Porównaj nazwy kolumn w bazie danych z zapytaniem SQL. Częstą przyczyną tego błędu są literówki.

[[Odniesienie]80040e10 — Nieprawidłowe pole COUNT]

Ten błąd występuje wówczas, gdy wyświetla się podgląd strony zawierającej zachowanie serwerowe Wstaw rekord w przeglądarce WWW i próbuje za jego pomocą wstawić rekord do bazy danych Microsoft Access.

Być może próbujesz wstawić do pola bazy danych rekord, który zawiera znak zapytania (?) w nazwie pola. Znak zapytania jest znakiem specjalnym niektórych baz danych, w tym bazy Microsoft Access. Nie można używać go w nazwach tabeli ani pól baz danych.

Otwórz system bazy danych i usuń znak zapytania (?) z nazw pól. Uaktualnij zachowania serwerowe na stronie, które odwołują się do tego pola.

[[Odniesienie]80040e14 — Błąd składni w instrukcji INSERT INTO]

Ten błąd występuje, gdy serwer próbuje przetworzyć stronę zawierającą zachowanie serwerowe Wstaw rekord.

Jego przyczyną jest na ogół przynajmniej jeden z następujących problemów z nazwą pola, obiektu lub zmiennej w bazie danych:

  • Użyto zastrzeżonego słowa jako nazwy. Większość baz danych ma zbiór słów zastrzeżonych. Np. słowo "date" jest słowem zastrzeżonym i nie można go używać w nazwach kolumn w bazie danych.

  • W nazwie użyto znaków specjalnych. Przykłady znaków specjalnych:

    . / * : ! # & - ?

  • W nazwie użyto spacji.

    Błąd ten może wystąpić także wtedy, gdy dla obiektu w bazie danych zdefiniowano maskę wprowadzania, a wstawiane dane są niezgodne z tą maską.

    Aby rozwiązać ten problem, nie stosuj słów zastrzeżonych, np. "date", "name", "select", "where" oraz "level" w nazwach kolumn w bazie danych. Usuń także spacje i znaki specjalne z nazw.

    Listę zastrzeżonych słów w popularnych systemach baz danych można znaleźć na poniższych stronach WWW:

  • Microsoft Access pod adresem http://support.microsoft.com/default.aspx?scid=kb;pl-pl;Q209187

  • MySQL pod adresem http://dev.mysql.com/doc/mysql/en/reserved-words.html

[[Odniesienie]80040e21 — Błąd ODBC przy wstawianiu lub uaktualnianiu]

Ten błąd występuje, gdy serwer próbuje przetworzyć stronę zawierającą zachowanie serwerowe Uaktualnij rekord albo Wstaw rekord. Baza danych nie może wykonać operacji uaktualniania lub wstawiania, którą próbuje przeprowadzić zachowanie serwerowe.

Oto potencjalne przyczyny i rozwiązania:

  • Zachowanie serwerowe usiłuje uaktualnić autonumerowane pole w tabeli bazy danych albo wstawić rekord do autonumerowanego pola. Ponieważ pola autonumerowane są automatycznie zapełniane przez system bazy danych, próba zewnętrznego zapełnienia ich wartością nie powiedzie się.

  • Dane, które uaktualnia albo wstawia zachowanie serwerowe, są nie mają prawidłowego typu dla danego pola bazy. Zachowanie próbuje na przykład wstawić datę w pole logiczne (tak/nie), ciąg w pole liczbowe, albo nieprawidłowo sformatowany ciąg znaków w pole Data/godzina.

[[Odniesienie]800a0bcd — BOF lub EOF ma wartość „prawda”]

Ten błąd występuje podczas próby wyświetlenia strony dynamicznej w przeglądarce albo w widoku aktywnym.

Ten problem występuje, gdy strona usiłuje wyświetlić dane z pustego zestawu rekordów. Aby rozwiązać ten problem, zastosuj do dynamicznej zawartości wyświetlanej na stronie zachowanie serwerowe Pokaż region:

  1. Zaznacz dynamiczną zawartość na stronie.

  2. Otwórz panel Zachowania serwerowe, kliknij przycisk Plus (+) i wybierz polecenie Pokaż region > Pokaż region, gdy zestaw rekordów NIE jest pusty.

  3. Wybierz zestaw rekordów, dostarczający dynamicznej zawartości i kliknij przycisk OK.

  4. Powtórz kroki 1-3 dla każdego elementu dynamicznej zawartości na stronie.

Rozwiązywanie problemów: komunikaty o błędach MySQL

Jednym z typowych komunikatów o błędzie, które mogą wystąpić podczas testowania połączenia PHP z bazą danych MySQL 4.1 jest "Klient nie obsługuje żądanego protokołu uwierzytelniania. Być może trzeba uaktualnić klienta MySQL".

Być może musisz wrócić do wcześniejszej wersji MySQL lub zainstalować PHP 5 i skopiować niektóre biblioteki DLL. Szczegółowe instrukcje znajdują się w części Konfigurowanie środowiska projektowego PHP.

Pomoc dostępna szybciej i łatwiej

Nowy użytkownik?