Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Objawy

Podczas otwierania bazy danych utworzonej w programie Access 2000 za pośrednictwem klas MFC DAO w Visual C++, pojawia się następujący komunikat o błędzie:

Bazy danych nierozpoznany format.

Także ten komunikat podczas próby utworzenia nowej bazy danych MFC DAO SDI lub MDI projektu przy użyciu MFC AppWizard.

Przyczyna

Ten komunikat o błędzie występuje, ponieważ klas MFC DAO tego statku z obciążeniem Visual C++ 6.0 DAO 3.5 (Dao350.dll) domyślnie. DAO 3.5 używa Jet 3.5, który można otworzyć tylko formatu Jet 3.5 (lub starszej) bazy danych. Program Access 2000 tworzy format Jet 4.0 pliki bazy danych, które są nie do poznania dla Jet 3.5. Aby pomyślnie otworzyć bazy danych programu Access 2000 przy użyciu klas MFC DAO, należy używać obiektów DAO 3.6 (Dao360.dll). DAO 3.6 używa aparatu Jet 4.0, które można otworzyć dostępnych formatów bazy danych programu Access.

Rozwiązanie

Obecnie nie istnieje obejście tego problemu za pomocą AppWizard ze źródłami danych w programie Access 2000.

Dla aplikacji, aby używać obiektów DAO w wersji 3.6 musisz zaktualizować wersję biblioteki MFC w czasie wykonywania do wersji 6.01 MFC. W tym celu zależy od tego, czy tworzysz aplikację do biblioteki MFC DLL lub tworzenia za pomocą bibliotek statycznych dla MFC.

W przypadku łączenia z biblioteki MFC DLL można określić, że mają MFC, aby używać obiektów DAO 3.6 przed otwarciem bazy danych programu Access 2000, wstawiając poniższy wiersz kodu:

AfxGetModuleState()->m_dwVersion = 0x0601;

Wstaw ten wiersz w CYourApp::Initinstance() funkcji tego programu. Jeśli tworzysz z statyczne biblioteki MFC, poniżej przedstawiono kroki, aby uzyskać statyczny kompilacje programu MFC, aby używać obiektów DAO 3.6:

  1. Zmodyfikuj plik Daocore.cpp w katalogu MFC SRC. Zostanie wyświetlony następujący komentarz:

    // Determine whether to use DAO 3.6, 3.5, or 3.0
    // Use DAO 3.0 if DLL build and not built with MFC 4.21 or later
    // Use DAO 3.6 if MFC 6.01 or later
    // otherwise, DAO 3.5

    Dodaj następujące wiersze:

    #undef _MFC_VER
    #define _MFC_VER 0x0601
  2. Odbuduj biblioteki dla wariantu, czego potrzebujesz. Na przykład do budowy statyczne biblioteki MFC, wersji debugowej, nie obsługujących kodu Unicode, Brak plików przeglądarki za pomocą następującego polecenia w wierszu polecenia w folderze MFC\SRC:

      nmake DEBUG=1

    for release:
    nmake DEBUG=0

    for unicode builds:
    nmake DEBUG=1 UNICODE=1
    nmake DEBUG=0 UNICODE=1

Uwaga Należy upewnić się, które znajdują się w ścieżce narzędzi kompilatora. Jeśli tak nie jest, należy uruchomić plik Vcvars32.bat znajdujący się w folderze \BIN Visual C++. Należy również zauważyć, że podczas tworzenia tych nowych wersji bibliotek, zostaną one skopiowane w górę już istniejących w folderze MFC\LIB, warto najpierw zapisać starych.

Stan

To zachowanie jest zgodne z projektem.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×