דלג לתוכן הראשי
היכנס דרך Microsoft
היכנס או צור חשבון.
שלום,
בחר חשבון אחר.
יש לך חשבונות מרובים
בחר את החשבון שברצונך להיכנס באמצעותו.

מאפייני הבעיה

בעת פתיחת מסד נתונים שנוצר באמצעות Access 2000 באמצעות מחלקות MFC DAO ב- Visual C++, מתקבלת הודעת השגיאה הבאה:

תבנית מסד נתונים לא מזוהה.

אתה מקבל הודעה זו בעת ניסיון ליצור מסד נתונים חדש של MFC DAO SDI או פרוייקט MDI באמצעות MFC AppWizard.

הגורם

הודעת שגיאה זו מתרחשת מאחר MFC DAO מחלקות זה משלוח עם עומס Visual C++ 6.0 DAO 3.5 (Dao350.dll) כברירת מחדל. DAO 3.5 משתמשת Jet 3.5, באפשרותך לפתוח רק עיצוב Jet 3.5 (או גירסה מוקדמת יותר) מסדי נתונים. Access 2000 יוצר תבנית Jet 4.0 קבצי מסד נתונים, אתה מזוהה Jet 3.5. כדי לפתוח מסד נתונים של Access 2000 באמצעות מחלקות MFC DAO בהצלחה, עליך להשתמש ב- DAO 3.6 (Dao360.dll). DAO 3.6 משתמש Jet 4.0, באפשרותך לפתוח בכל תבנית מסד נתונים של Access זמינים.

פתרון

כעת, אין דרך לעקוף באמצעות AppWizard עם מקורות נתונים של Access 2000.

עבור היישום לשימוש בגירסה 3.6 של DAO, עליך לעדכן את הגירסה של MFC בזמן ריצה כדי MFC גירסה 6.01. כדי לבצע פעולה זו תלוי אם אתה בונה את היישום לשימוש קובץ ה-DLL של MFC או לבנות עם ספריות סטטיות עבור MFC.

אם אתה מקשר עם קובץ ה-DLL של MFC, באפשרותך לציין שברצונך ש- MFC לשימוש DAO 3.6 על-ידי הוספת את שורת הקוד הבאה לפני פתיחת מסד נתונים של Access 2000:

AfxGetModuleState()->m_dwVersion = 0x0601;

הוסף שורה זו הפונקציה CYourApp::Initinstance() של התוכנית שלך. אם אתה בונה עם ספריות ה-MFC סטטי, להלן בונה השלבים כדי לקבל סטטי של MFC לשימוש DAO 3.6:

  1. לשנות את הקובץ Daocore.cpp בספריה MFC SRC. תקבל את ההערה הבאה:

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

    הוסף את השורות הבאות:

    #undef _MFC_VER
    #define _MFC_VER 0x0601
  2. בנה מחדש את הספריה עבור משתנה שעליך. לדוגמה, כדי לבנות את ספריית MFC סטטי, הגירסה לאיתור באגים, שאינן Unicode, בקובצי הדפדפן לא השתמש בפקודה הבאה בשורת הפקודה בתיקיה MFC\SRC:

      nmake DEBUG=1

    for release:
    nmake DEBUG=0

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

הערה עליך לבצע מסוימים שהם כלים מהדר בנתיב שלך. אם לא, ייתכן שיהיה עליך להפעיל את הקובץ Vcvars32.bat הנמצאים בתיקיה \BIN Visual C++. כמו כן, שים לב בעת בניית אלה גירסאות חדשות של הספריות, הם יועתקו מעל לראש השיטות הקיימות בתיקיה MFC\LIB כך ייתכן שיהיה עליך לשמור תחילה את הישנים.

מצב

אופן פעולה זה הוא מכוון.

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

גלה את יתרונות המנוי, עיין בקורסי הדרכה, למד כיצד לאבטח את המכשיר שלך ועוד.

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלך?
בלחיצה על 'שלח', אתה מאפשר למשוב שלך לשפר מוצרים ושירותים של Microsoft. מנהל ה-IT שלך יוכל לאסוף נתונים אלה. הצהרת הפרטיות.

תודה על המשוב!

×