Sümptomid
Andmebaas loodud Access 2000 kaudu MFC DAO klassid Visual C++ avamisel saate järgmise tõrketeate:
Tundmatu vorming.
Lisaks saate seda sõnumit kui proovite luua uue MFC DAO andmebaasi SDI või MDI projekti MFC AppWizard abil.
Põhjus
See tõrketeade ilmneb, sest MFC DAO klassi selle saaja Visual C++ 6.0 koormus DAO 3.5 (Dao350.dll) vaikimisi. DAO 3.5 kasutab Jet 3.5, mille saab avada ainult Jet 3.5 vorming (või varasem) andmebaasid. Access 2000 loob Jet 4.0 vormingus andmebaasi faili, mis on tundmatuseni Jet 3.5. Access 2000 andmebaasi, MFC DAO-klasside edukalt avamiseks peate kasutama DAO 3.6 (Dao360.dll). DAO 3.6 kasutab Jet 4.0, mille saate avada mis tahes saadaval Accessi andmebaasi vormingus.
Lahendus
Praegu pole mingit lahendust kasutades AppWizard Access 2000 andmeallikatega.
Rakenduse kasutamine DAO 3.6 versioonis, peate värskendama MFC versiooni käivitamise ajal, et MFC versiooni 6,01. Selleks sõltub sellest, kas on kasutada MFC DLL või luua staatiline teegid MFC rakenduse loomine.
Kui ühendate MFC DLL, saate määrata soovitud MFC kasutamine DAO 3.6 enne Access 2000 andmebaasi avamisel järgmine rida koodi sisestades:
AfxGetModuleState()->m_dwVersion = 0x0601;
Sisestage selle rea programmi CYourApp::Initinstance() funktsiooni. Kui on loomine staatiline MFC teegid, on järgmised sammud staatiline jaeversioonides MFC kasutamine DAO 3.6:
-
Muutke faili Daocore.cpp kataloogis MFC SRC. Kuvatakse järgmine märkus:
// 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.5Lisage järgmine rida:
#undef _MFC_VER
#define _MFC_VER 0x0601 -
Taastada teeki peate variant. Näiteks luua staatiline MFC Raamatukogu siluri versiooni Unicode'i, ei ole brauseri failidega kasutage järgmist käsku käsuviibale MFC\SRC kaustas:
nmake DEBUG=1
for release:
nmake DEBUG=0
for unicode builds:
nmake DEBUG=1 UNICODE=1
nmake DEBUG=0 UNICODE=1
Märkus. Peate tegema teatud kompilaator tööriistad on oma tee. Vastasel juhul võib olla vajalik Visual C++ \BIN kaustas Vcvars32.bat faili käivitada. Pange tähele, et kui te neid uusi versioone teegid, kopeeritakse olemasolevaid kaustas MFC\LIB peal nii, et soovite vanu esmalt salvestada.
Olek
Selline käitumine on ette nähtud.