FIX: موفر SQLOLEDB بشكل غير صحيح يترك معاملات مفتوحة

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

اضغط هنا لرابط المقالة باللغة الانجليزية281633
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الخطأ رقم: 58292 (sqlbug_70)
الخطأ رقم: 235846 (SHILOH)
الأعراض
تشغيل تسلسل معينة من الأوامر التي تتضمن معلمات في برنامج تطبيق باستخدام موفر SQLOLEDB بشكل غير صحيح "و" المعاملات صريحة يترك معاملة غير ملتزم بها المفتوحة. يمكن أن يؤدي هذا إلى حظر الجسيمة والمشاكل الأخرى.
السبب
على الرغم من أنه تم تعيين الخيار SET 'implicit_transactions' إلى إيقاف "، يتم فتح موفر SQLOLEDB إحدى معاملات ضمنية.
الحل

MDAC 2.6

لحل هذه المشكلة، يجب الحصول على أحدث حزمة خدمة لـ Microsoft بيانات Access مكونات 2.6. للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
300635كيفية الحصول على أحدث حزمة خدمة لـ MDAC 2.6

الإصلاحات

هام: يجب أن يتم تثبيت بيانات Microsoft Access Components الإصدار 2.6 من قبل تطبيق هذا الإصلاح العاجل.

يجب أن يكون للنسخة الإنجليزية من هذا الإصلاح سمات الملفات التالية أو أحدث:
   Date       Time     Version     Size      File name      Platform   -----------------------------------------------------------------   11/22/00   8:43pm   8.00.0225   491,584   Sqloledb.dll   Intel   11/22/00   8:43pm   8.00.0225    61,440   Sqloledb.rll   Intel				
ملاحظة: إلى بسبب تبعيات الملف، أحدث إصلاح عاجل أو الميزة التي تحتوي على ملفات أعلاه قد يحتوي أيضاً على ملفات إضافية.

الحل البديل
كمحاولة للتغلب على هذه المشكلة قم بواحد مما يلي:
  • استخدام موفر OLEDB ODBC بدلاً من SQLOLEDB موفر.

    - أو -
  • وضع المعاملات إضافية حول رمز إنشاء المشكلة.
تصريح
أقرت Microsoft هذا وجود مشكلة في موفر Microsoft OLE DB لـ SQL Server المضمن في إصدارات Microsoft Data Access Components (MDAC) 2.1 و 2.5 2.6.

MDAC 2.6

تم تصحيح هذه المشكلة لأول مرة في Microsoft بيانات Access مكونات 2.6 المزود بحزمة الخدمة Service Pack 1.


الإصدار MDAC 2.5

تم تصحيح هذه المشكلة لأول مرة في إصدار Sqlredis.exe المضمنة مع Microsoft SQL Server 7.0 المزود بحزمة الخدمة Service Pack 4.
معلومات أخرى
خلال تتبع التطبيق, يمكنك مشاهدة في SQL Server منشئ ملفات التعريف قيام موفر SQLOLEDB بإرسال العبارات التالية إلى ملقم SQL:
SET FMTONLY ON select ... SET FMTONLY OFFset implicit_transactions off SET NO_BROWSETABLE OFF				
هذه الأسباب ' implicit_transaction ' الذي يتم فتحه بالفعل.

عند استخدام موفر OLEDB لـ ODBC وبرنامج تشغيل SQL Server بدلاً من ذلك, يرسل التعليمات البرمجية Visual Basic/ADO نفس الدقيقة العبارات التالية إلى SQL Server:
set implicit_transactions off SET NO_BROWSETABLE OFFSET FMTONLY ON select  ... SET FMTONLY OFF				
وبالتالي SELECT FMTONLY فتح إحدى معاملات ضمنية مع SQLOLEDB. ومع ذلك، لأن التطبيق يسبق فتح هذه المعاملة, سيتم بشكل عادي أبداً إغلاق التطبيق عليه. سيتم إغلاق هذه المعاملة فقط عند المعاملة الصريحة التالي.
تأمين المعلقة opentran

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

خصائص

رقم الموضوع: 281633 - آخر مراجعة: 02/28/2014 04:23:51 - المراجعة: 6.4

Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft Data Access Components 2.1, Microsoft Data Access Components 2.5, Microsoft Data Access Components 2.6

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