Applies ToWindows 7 Enterprise Windows 7 Home Basic Windows 7 Home Premium Windows 7 Professional Windows 7 Starter Windows 7 Ultimate Microsoft Windows XP Service Pack 3 Microsoft Windows Server 2003 Service Pack 2 Windows Vista Business Windows Vista Business 64-bit Edition Windows Vista Enterprise Windows Vista Enterprise 64-bit Edition Windows Vista Home Basic Windows Vista Home Basic 64-bit Edition Windows Vista Home Premium Windows Vista Home Premium 64-bit Edition Windows Vista Service Pack 2 Windows Vista Starter Windows Vista Ultimate Windows Vista Ultimate 64-bit Edition Windows Server 2008 Datacenter Windows Server 2008 Datacenter without Hyper-V Windows Server 2008 Enterprise Windows Server 2008 Enterprise without Hyper-V Windows Server 2008 for Itanium-Based Systems Windows Server 2008 for Windows Essential Server Solutions Windows Server 2008 Foundation Windows Server 2008 Standard Windows Server 2008 Standard without Hyper-V Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Enterprise Windows Server 2008 R2 for Itanium-Based Systems Windows Server 2008 R2 Foundation Windows Server 2008 R2 Standard

تنبيه ADO و ADO MD قد لم يتم اختبارها في بيئة Microsoft.NET Framework. يمكن أن يسبب المشاكل المتقطعة، خاصة في التطبيقات المستندة إلى خدمة أو في تطبيقات ذات مؤشرات الترابط المتعددة. يمكن استخدام الأساليب الموضحة في هذه المقالة فقط كإجراء مؤقت أثناء الترحيل إلى ADO.NET. يجب استخدام هذه التقنيات فقط بعد أدرتم اختبار كامل للتأكد من عدم وجود أية مشاكل التوافق. أية مشكلات ناتجة عن استخدام ADO أو ADO MD بهذه الطريقة غير معتمد. لمزيد من المعلومات، راجع المقالة التالية في "قاعدة المعارف ل Microsoft":

840667 تتلقى أخطاء غير متوقعة عند استخدام ADO و ADO MD في تطبيق.NET Framework

الأعراض

اطلع على السيناريو التالي. على جهاز كمبيوتر يقوم بتشغيل Windows 7 Service Pack 1 (SP1) أو Windows Server 2008 R2 SP 1 أو أنه قد KB9823246 تثبيت إعادة ترجمة تطبيق كائنات بيانات Microsoft ActiveX (ADO) باستخدام أحد التطبيقات التالية:

  • Microsoft Visual c + +

  • Microsoft Visual Basic for Applications (VBA)

  • Microsoft Visual Basic 6

  • تطبيقات Microsoft.NET

في هذا السيناريو، تجد أن يتم تشغيل التطبيق على أنظمة التشغيل ذات المستوى الأدنى. على سبيل المثال، فإنه لا يعمل على إصدار Windows 7 على نظام التشغيل Windows Vista وعلى آخر إصدارات سابقة من Windows. اعتماداً على التطبيق الخاص بك، تتلقى أيضا رسالة خطأ مشابهة لإحدى الرسائل التالية. (قد تظهر رسائل خطأ أخرى.)رسالة الخطأ 1

REGDB_E_CLASSNOTREG (0x80040154)

رسالة الخطأ 2

E_POINTER (0x80004003)

رسالة الخطأ الثالثة

E_NOINTERFACE (0x80004002)

رسالة الخطأ 4

غير قادر على تحويل COM كائن من النوع 'System.__ComObject' إلى نوع واجهة ' ADODB. اتصال '. فشلت هذه العملية لأن فشل استدعاء QueryInterface على مكون COM للواجهة ذات IID '{00001550-0000-0010-8000-00AA006D2EA4}' بسبب الخطأ التالي: بلا واجهة مثل اعتماد (استثناء من HRESULT: 0x80004002 (E_NOINTERFACE)). "

يتطابق مقطع التعليمات البرمجية Visual c + + التالية هذه المشكلة.

#import " msado15.dll" no_namespace rename("EOF","EndOfFile") int main(){  CoInitialize(NULL);  _ConnectionPtr pConnection = NULL;     HRESULT hr = pConnection.CreateInstance(__uuidof(Connection)); //hr gets E_NOINTERFACE here}

يتطابق التالي Visual Basic للتطبيقات مقطع التعليمات البرمجية هذه المشكلة.

Private Sub Form_Load() Dim Conn As New ADODB.Connection ‘Runtime error here: Class does not support Automation or does not support expected interfaceEnd Sub

خطأ VBA: خطأ وقت التشغيل '430': فئة لا تعتمد الأتمتة أو لا تعتمد الواجهة المتوقعةملاحظة: لم يعد يعتمد تجميع التوافق الأساسي ل ADO Microsoft ولم يعد يدعم Visual Basic 6. لمزيد من المعلومات حول Visual Basic 6 المحسنة، قم بزيارة صفحة ويب MSDN التالي:

تدعم الجملة ل Visual Basic 6.0 في نظام التشغيل Windows Vista، Windows Server 2008 و Windows 7لمزيد من المعلومات حول تجميع التوافق الأساسي ل ADO المحسنة، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":

318559 استخدام تجميع التوافق الأساسي ل ADO (ADODB) في Visual Studio.NET

السبب

تحدث هذه المشكلة لأنه تم تغيير بعض الواجهات ADO في ويندوز 7 SP1 المراد إقرانها مع معرفات مثيل جديد (IIDs). تم تعيين واجهات IID أقدم اللاحقة ما يلي:

_Deprecatedعلى سبيل المثال، تم تحديث _Connection واجهة كما يلي:

  • في Windows 7 والإصدارات السابقة من Windows، يتم _Connection IID 00000550-0000-0010-8000-00AA006D2EA4.

  • في Windows 7 SP1، _Connection IID 00001550-0000-0010-8000-00AA006D2EA4، و (iid) ل _Connection_Deprecated 00000550-0000-0010-8000-00AA006D2EA4.

إذا كان التطبيق يستخدم الربط المبكر إلى _Connection، يتم تخزين IID جديد في التطبيق الثنائية أثناء التحويل البرمجي. تسبب خطأ عند تشغيل التطبيق على نظام التشغيل ذات المستوى الأدنى للديوان غير موجود.بعض واجهات برمجة التطبيقات ADO تعتمد على النظام الأساسي في ADO 2.7 والإصدارات الأحدث. في إصدارات 64 بت من Windows، معالجة واجهات برمجة التطبيقات ADO هذه الوسائط باستخدام نوع بيانات 64 بت (مثل نوع بيانات LONGLONG ). ومع ذلك، لا يزال استخدام التطبيقات التي تستخدم واجهات برمجة التطبيقات هذه نوع بيانات طويل . لذلك، تتلقى رسالة خطأ "لا يتطابق نوع" عند محاولة تشغيل الماكرو.

الحل

لحل هذه المشكلة، تثبيت أحد التحديثات الموضحة في المقالة التالية في "قاعدة المعارف ل Microsoft":

2640696 لا يعمل التطبيق المستندة إلى ADO الذي يتم تحويله برمجياً في ويندوز 7 حزمة الخدمة SP1 أو Windows Server 2008 R2 SP1 في الإصدارات السابقة من Windows

مزيد من المعلومات

حل أفضل للتغييرات Windows 7 SP1 ADO GUID

http://blogs.msdn.com/b/psssql/archive/2011/10/03/yes-we-made-a-mistake-and-are-finally-going-to-fix-it.aspx

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

تساعدك المجتمعات على طرح الأسئلة والإجابة عليها، وتقديم الملاحظات، وسماعها من الخبراء ذوي الاطلاع الواسع.