Simptome

La deschiderea unei baze de date create cu Access 2000 prin MFC DAO clase în Visual C++, primiţi următorul mesaj de eroare:

Format nerecunoscut bazei de date.

De asemenea, primiţi acest mesaj când încercați să creați un nou MFC DAO date SDI sau MDI project utilizând MFC AppWizard.

Cauza

Acest mesaj de eroare apare deoarece MFC DAO clase care livrare cu Visual C++ 6.0 load DAO 3.5 (Dao350.dll) în mod implicit. DAO 3.5 utilizează Jet 3.5, care poate deschide numai Jet 3.5 format (sau o versiune anterioară) bazele de date. Access 2000 creează Jet 4.0 format fișiere de date, care sunt nerecunoscut Jet 3.5. Pentru a deschide cu succes o bază de date Access 2000 utilizează clasele MFC DAO, trebuie să utilizați DAO 3.6 (Dao360.dll). DAO 3.6 utilizează Jet 4.0, care poate deschide orice format de bază de date Access disponibile.

Rezolvare

În prezent, nu există nicio soluție pentru utilizarea AppWizard cu surse de date Access 2000.

Pentru aplicaţia dvs. să utilizați versiunea 3.6 DAO, trebuie să actualizați versiunea de MFC la momentul execuției pentru MFC versiunea 6.01. Pentru a face acest lucru depinde de dacă sunteţi construirea aplicațiilor să utilizeze MFC DLL sau pentru a construi cu bibliotecile statică pentru MFC.

Dacă vă sunt legarea cu MFC DLL, aveți posibilitatea să specificați că doriți să utilizați DAO 3.6 inserarea următoarea linie de cod înainte de a deschide o bază de date Access 2000 MFC:

AfxGetModuleState()->m_dwVersion = 0x0601;

Introduceți această linie în funcția CYourApp::Initinstance() programului. Dacă sunteţi construirea cu bibliotecile de statică MFC, Iată pașii pentru a obține statică compilările de MFC utilizarea DAO 3.6:

  1. Modificați fișierul Daocore.cpp din directorul MFC SRC. Veți primi următorul comentariu:

    // 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

    Adăugați următoarele linii:

    #undef _MFC_VER
    #define _MFC_VER 0x0601
  2. Regenerați biblioteca pentru varianta aveți nevoie. De exemplu, pentru a construi bibliotecă statică MFC, versiunea de depanare, non-Unicode, cu fișierele de browser nu utilizați următoarea comandă la promptul de comandă în folderul MFC\SRC:

      nmake DEBUG=1

    for release:
    nmake DEBUG=0

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

Notă Trebuie să faceți anumite care sunt instrumentele compilator de cale. Dacă nu, trebuie să executaţi fişierul Vcvars32.bat aflat în folderul Visual C++ \BIN. De asemenea, rețineți că la compilarea aceste versiuni noi de biblioteci, acestea vor fi copiate pe partea de sus a celor existente în folderul MFC\LIB, astfel încât poate doriți să salvați mai întâi cele vechi.

Stare

Acest comportament este proiectat.

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?

Vă mulțumim pentru feedback!

×