FIX: استخدام عبارة LIKE مع موفر Jet OLEDB مجدي

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

اضغط هنا لرابط المقالة باللغة الانجليزية311159
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الأعراض
عند تنفيذ استعلام SQL باستخدام Microsoft Jet OLEDB موفر 4.0 تطبيق جملة LIKE على جدول ملقم SQL مرتبط جملة LIKE يتم لا بشكل صحيح توجيه بواسطة معالج استعلام Microsoft Jet بـ SQL Server. ينتج عن هذا استعلام الكلي أقل فعالية لأن كافة الصفوف أولاً استردها من SQL Server محليًا Jet.

لاحظ أنه بعد يتم استرداد كافة الصفوف محلياً بواسطة Jet جملة LIKE يتم تطبيق داخليًا النتيجة النهائية قبل إرسال النتائج إلى العميل ، بحيث تكون النتيجة النهائية نفس مجموعة الصفوف.
الحل
لحل هذه المشكلة، قم بتثبيت أحدث حزمة خدمة Microsoft Jet 4.0. للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
239114كيفية: الحصول على أحدث حزمة خدمة لـ مشغل قاعدة بيانات Microsoft Jet 4.0
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في بداية هذه المقالة. تم إصلاح هذه المشكلة في Jet 4.0 Service Pack 6 (SP6).
معلومات أخرى

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

  1. إنشاء قاعدة بيانات Microsoft Access جديد يسمى "C:\DB1.MDB".
  2. لفتح C:\DB1.MDB في Microsoft Access وإنشاء جدول مرتبط بجدول الكتّاب الموجودة في قاعدة بيانات pubs (الناشرون) على ملقم SQL Server. الاحتفاظ اسم الجدول المرتبط الافتراضي dbo_authors.
  3. تشغيل الاستعلام التالي باستخدام موفر OLEDB Jet Microsoft 4.0 مقابل قاعدة بيانات Access C:\DB1.MDB.
    SELECT * from dbo_authors WHERE state LIKE 'M%'					
إذا مراقبة خادم SQL Server خلفية باستخدام الأداة المساعدة SQL Server منشئ ملفات التعريف "، سترى أن عبارات SQL التالي يتم إرسالها إلى SQL Server, تشير إلى أن يتم للمحسن استعلام Microsoft Jet تطبيق المعايير LIKE بعد استرداد كافة الصفوف من الجدول الكتّاب. لاحظ أن إزالة كافة عبارات SQL غير الحرجة إضافة التعليقات لوصف عبارات SQL مختلفة المرسلة من قبل Microsoft Jet.
-- This is sent first by Jet to fetch all key values.  -- Note that WHERE state LIKE 'M%' is not applied here.SELECT au_id, state FROM authors -- This retrieves a single row using the first key value retrieved by the-- above SQL statement. Jet will apply the LIKE clause internally-- before retrieving the first row.SELECT au_id,au_lname,au_fname,phone,address,city,state,zip,contract  FROM dbo.authors WHERE au_id = @P1 				
إذا قمت بتشغيل استعلام SQL مماثلة باستخدام برنامج تشغيل ODBC Microsoft Access جملة LIKE يتم بشكل صحيح توجيهها إلى ملقم SQL في عبارة SQL الأول ينتج استعلام الكلي أكثر فاعلية.
jolt

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

خصائص

رقم الموضوع: 311159 - آخر مراجعة: 01/11/2015 04:26:56 - المراجعة: 1.4

Microsoft OLE DB Provider for Jet 4.0

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbfix kbqfe KB311159 KbMtar
تعليقات