FIX: IN و عبارات UNION فاكهة "عدد الأعمدة غير صحيح

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

اضغط هنا لرابط المقالة باللغة الانجليزية283842
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الأعراض
مع موفر Microsoft OLE DB لـ Oracle (MSDAORA) ، قد ينتج عن تنفيذ عبارة SQL التي تحتوي على كل من IN و عبارة UNION كائن Recordset كائنات بيانات ActiveX (ADO) يحتوي على عدد غير صحيح من أعمدة.

تحدث هذه المشكلة عند استخدام مؤشر العميل ADO (مما يعني أنه تم تعيين الخاصية CursorLocation إلى adUseClient) يعمل بشكل صحيح عند استخدام مؤشر من جانب الملقم.
الحل
لحل هذه المشكلة، يجب الحصول على أحدث حزمة خدمة لـ Microsoft MDAC 2.5. للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
293312INFO: كيفية الحصول على أحدث MDAC 2.5 حزمة الخدمات
لحل هذه المشكلة، يجب الحصول على أحدث حزمة خدمة لـ Microsoft بيانات Access مكونات 2.6. للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
300635INFO: كيفية الحصول على أحدث MDAC 2.6 حزمة الخدمات

الإصلاحات

يجب أن يكون للنسخة الإنجليزية من هذا الإصلاح سمات الملفات التالية أو أحدث:
   Version       Size      File name     Platform   -------------------------------------------------------   2.53.6007.0   209,168   Msdaora.dll   x86				
الحل البديل
لا تحدث المشكلة في حالة استخدام مؤشر من جانب الملقم; تم تعيين الخاصية CursorLocation إلى adUseServer.
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في بداية هذه المقالة. تم تصحيح هذه المشكلة لأول مرة في Microsoft بيانات Access مكونات 2.6 المزود بحزمة الخدمة Service Pack 2 و MDAC 2.5 SP3 MDAC 2.7.
معلومات أخرى

خطوات إعادة إنشاء في سلوك

  1. قم بإضافة التعليمات البرمجية التالية في مشروع Visual Basic جديد وتعيين مرجع Project إلى مكتبة 2.5 كائنات بيانات ActiveX Microsoft:
    Private Sub Command1_Click()    Dim cn As New ADODB.Connection    Dim rs As New ADODB.Recordset    cn.Open "Provider=MSDAORA;Data Source=your_oracle_server;User ID=your_user_name;Password=your_password"    On Error Resume Next    cn.Execute "Drop table oratest"    cn.Execute "CREATE TABLE ORATEST(Col1 VARCHAR2(10) NULL," & _               "Col2 VARCHAR2(10) NULL)"    cn.Execute "insert into oratest values(7,7)"    cn.Execute " insert into oratest values(6,6)"    cn.Execute "Drop table DUAL"    cn.Execute "CREATE TABLE DUAL(C11 VARCHAR2(10) NULL," & _               "C12 VARCHAR2(10) NULL)"    cn.Execute "insert into dual values(6,7)"    rs.CursorLocation = adUseClient    rs.Open "select col1, col2 from oratest where col1 in (Select C11 from dual union select C12 from dual)", _            cn, adOpenStatic,adLockBatchOptimistic        Debug.Print rs.Fields.Count      '<--- incorrect column count           Debug.Print rs.Fields(0).Name    Debug.Print rs.Fields(1).NameEnd Sub					
  2. عند تشغيل المشروع أعلاه يتم عرض عدد غير صحيح من أعمدة. قد ترى أيضاً الخطأ "كائن تم فتح" الانتباه عدد الحقول مجموعة السجلات في إطار Watch Visual Basic. في هذه الحالة، سطر "Debug.Print rs.Fields.Count" عدم طباعة أية النتيجة في الإطار الحالي.

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

خصائص

رقم الموضوع: 283842 - آخر مراجعة: 01/05/2015 12:56:23 - المراجعة: 6.1

Microsoft OLE DB Provider for Oracle Server 1.0, Microsoft OLE DB Provider for Oracle Server 1.0, Microsoft Data Access Components 2.5, Microsoft Data Access Components 2.5 Service Pack 1, Microsoft Data Access Components 2.6

  • kbnosurvey kbarchive kbmt kbqfe kbhotfixserver kbmdac250sp3fix kbbug kbfix kbmdac260sp2fix kboracle kbprovider KB283842 KbMtar
تعليقات