FIX: خيار REPAIR_DB يمكن إزالة التشفير من Access 2000 قاعدة

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية298145
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الأعراض
إذا كنت تستخدم استدعاء API ODBC SQLConfigDataSource مع الخيار REPAIR_DB على ملف قاعدة بيانات Microsoft Access مشفر يتم إصلاح قاعدة البيانات بشكل صحيح ولكن إزالة التشفير.
السبب
هذه هي مشكلة في برامج Microsoft Jet تشغيل ODBC (Odbcjt32.dll) التي تأتي مع Microsoft Data Access Components (MDAC) 2.5 Service Pack 2 والإصدارات السابقة.
الحل
لحل هذه المشكلة، يجب الحصول على أحدث حزمة خدمة لـ Microsoft MDAC 2.5. للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
293312INFO: كيفية الحصول على أحدث MDAC 2.5 حزمة الخدمات
يجب أن يكون للنسخة الإنجليزية من هذا الإصلاح سمات الملفات التالية أو أحدث:
   Date        Version      Size            File name      Platform   ----------------------------------------------------------------   12/04/2001  4.0.7412.0   270,608 bytes   Odbcjt32.dll   x86				

الحل البديل
كمحاولة للتغلب على هذه المشكلة استخدم الدالة CDaoWorkspace::RepairDatabase إصلاح قاعدة البيانات.
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في بداية هذه المقالة. تم تصحيح هذه المشكلة لأول مرة في Microsoft MDAC 2.5 المزود بحزمة الخدمة Service Pack 3.
معلومات أخرى
التعليمة البرمجية التالية reproduces المشكلة:
void Repair(BOOL bEncrypt){	CString strDBQ = "d:\\NWind.mdb", strSystemDB = "d:\\System.mdw";	CString strAttributes;	strAttributes += "REPAIR_DB=";	strAttributes += strDBQ;	if (bEncrypt)		strAttributes += " ENCRYPT";  // This additional keyword is an optimistic try and has no effect!!	strAttributes += "|";	strAttributes += "SYSTEMDB=";	strAttributes += strSystemDB;	strAttributes += "|";	strAttributes += "EXCLUSIVE=TRUE";	strAttributes += "|";	strAttributes += "|";	// Exchange pipes against nulls so the command is interpreted correctly.	for (int i = 0; i < strAttributes.GetLength(); i++)	{		if (strAttributes[i] == '|')			strAttributes.SetAt(i, char(0));	}	BOOL b = SQLConfigDataSource(NULL, ODBC_CONFIG_SYS_DSN, "Microsoft Access Driver (*.mdb)",		(LPCSTR) strAttributes);	if (!b)	{		CString strErrorMsg;		for (int i = 1; i <= 8; i++)		{			WORD cbErrorMsg;			DWORD dwErrorCode;			RETCODE r = SQLInstallerError(i, &dwErrorCode, strErrorMsg.GetBuffer(100), 100, &cbErrorMsg);			if (r == SQL_NO_DATA)				break;			strErrorMsg.ReleaseBuffer(cbErrorMsg);			TRACE("Rec: %d: %d, %x (%s)\n", i, r, dwErrorCode, (const char *) strErrorMsg);		}		AfxMessageBox("Repair failed!");	}	else		AfxMessageBox("Repair succeeded!");}				

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 298145 - آخر مراجعة: 02/28/2014 04:27:52 - المراجعة: 3.2

Microsoft Open Database Connectivity Driver for Access 4.0, Microsoft Data Access Components 2.1 Service Pack 2, Microsoft Data Access Components 2.5 Service Pack 2, Microsoft Data Access Components 2.5, Microsoft Data Access Components 2.5 Service Pack 1

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbmdac250sp3fix kbjet kbmdacnosweep kbprb KB298145 KbMtar
تعليقات