FIX: استخدام xp_sendmail مع لحساب عبارة يتسبب انتهاك وصول

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

اضغط هنا لرابط المقالة باللغة الانجليزية819955
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الخطأ رقم: 469145 (SHILOH_BUGS)
الأعراض
قد يؤدي استدعاء xp_sendmail توسيع الإجراء المخزن "انتهاك وصول" بمعالجة عند تحقق كافة الشروط التالية:
  • يجب أن تستخدم استدعاء xp_sendmail@ الاستعلام المعلمة إرسال مجموعة سجلات.
  • الاستعلام الذي تم تمريره إلى @ الاستعلام يجب أن تتضمن معلمة في عبارة COMPUTE.
  • يجب أن يقوم الاستعلام بإرجاع أية صفوف.
وفيما يلي مثال عن الاستعلام قد تواجه هذه المشكلة:
 EXEC master..xp_sendmail  @recipients = 'recipient_email_address', @message = 'Total Sum of Job ID' , @subject = 'Compute Sum', @width = 133 , @query = 'SELECT emp_id, fname, minit, lname, job_id, job_lvl, pub_id FROM pubs.dbo.employee WHERE 1=0 COMPUTE SUM (job_id)'
ملاحظة هذه المشكلة هو انحدار يؤثر فقط على عدد قليل من نشر SQL Server 2000 Service Pack 3 الإصلاح العاجل الإصدارات. تنطبق هذه المشكلة فقط على أجهزة الكمبيوتر الملقم التي تعمل بنظام التشغيل SQL Server 2000 الإصلاح العاجل وبالطريقة بين بناء 780 و 807 (ضمناً). التحقق من إصدار الملف Sqlmap70.dll في المجلد BINN مثيل SQL Server لتحديد ما إذا كان المثيل يتأثر. إصدار الملف المتأثرة سمات التالية:
   Date         Time   Version        Size           File name   --------------------------------------------------------------   28-Feb-2003  01:34  2000.80.778.0  176,696 bytes  Sqlmap70.dll				
الحل

معلومات حزمة الخدمة

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

معلومات الإصلاح العاجل

ملاحظة يمكن تطبيق هذا الإصلاح العاجل (بناء 811) فقط إلى SQL Server 2000 المزود بحزمة الخدمة Service Pack 3.

إصدار اللغة الإنجليزية من هذا الإصلاح سمات الملف (أو الأحدث) المسرودة في الجدول التالي. يتم سرد التواريخ والأوقات الخاصة بهذه الملفات بالتوقيت العالمي coordinated (UTC). عندما تقوم بعرض معلومات الملف، يتم تحويلها إلى التوقيت المحلي. لمعرفة الفرق بين التوقيت العالمي (UTC) والتوقيت المحلي، استخدم علامة التبويب المنطقة الزمنية في أداة التاريخ والوقت في "لوحة التحكم".
   Date         Time   Version         Size             File name   -------------------------------------------------------------------------------   26-Feb-2003  03:41  2000.80.777.0      29,244 bytes  Dbmslpcn.dll        08-Feb-2003  05:43                    786,432 bytes  Distmdl.ldf   08-Feb-2003  05:43                  2,359,296 bytes  Distmdl.mdf   30-Jan-2003  01:55                        180 bytes  Drop_repl_hotfix.sql   07-Apr-2003  19:15  2000.80.801.0   1,557,052 bytes  Dtsui.dll           24-Apr-2003  02:51                    747,927 bytes  Instdist.sql   30-Jan-2003  01:55                      1,402 bytes  Inst_repl_hotfix.sql   08-Feb-2003  06:40  2000.80.765.0      90,692 bytes  Msgprox.dll         01-Apr-2003  02:07                      1,873 bytes  Odsole.sql   05-Apr-2003  01:46  2000.80.800.0      62,024 bytes  Odsole70.dll        02-Apr-2003  21:48  2000.80.796.0      57,904 bytes  Osql.exe            02-Apr-2003  23:15  2000.80.797.0     279,104 bytes  Pfutil80.dll        04-Apr-2003  21:27                  1,083,467 bytes  Replmerg.sql   04-Apr-2003  21:53  2000.80.798.0     221,768 bytes  Replprov.dll        08-Feb-2003  06:40  2000.80.765.0     307,784 bytes  Replrec.dll         01-Apr-2003  02:23                  1,084,828 bytes  Replsys.sql   16-Apr-2003  22:39                    115,892 bytes  Sp3_serv_uni.sql   07-Apr-2003  17:44                     25,172 bytes  Sqldumper.exe       19-Mar-2003  18:20  2000.80.789.0      28,672 bytes  Sqlevn70.rll   24-Apr-2003  05:39  2000.80.811.0     176,696 bytes  Sqlmap70.dll        08-Feb-2003  06:40  2000.80.765.0      57,920 bytes  Sqlrepss.dll        24-Apr-2003  05:39  2000.80.811.0   7,540,817 bytes  Sqlservr.exe        08-Feb-2003  06:40  2000.80.765.0      45,644 bytes  Sqlvdi.dll          26-Feb-2003  03:41  2000.80.777.0      29,244 bytes  Ssmslpcn.dll        26-Feb-2003  03:41  2000.80.777.0      82,492 bytes  Ssnetlib.dll        28-Feb-2003  01:34  2000.80.778.0      98,872 bytes  Xpweb70.dll
ملاحظة من بسبب تبعيات الملف أو الإصلاح العاجل الأحدث أو الميزة التي تحتوي على الملفات أيضاً يحتوي على ملفات إضافية.
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في بداية هذه المقالة. تم تصحيح هذه المشكلة لأول مرة في Microsoft SQL Server 2000 المزود بحزمة الخدمة Service Pack 4.
الحل البديل
لإيجاد حل المشكلة يمكنك تعديل الاستعلام بحيث فقط ينفذ COMPUTE عند وجود صفوف يتم إرجاعها. على سبيل المثال، يمكنك تعديل الاستعلام في قسم "الأعراض" كما يلي لتجنب المشكلة:
EXEC master..xp_sendmail  @recipients = 'recipient_email_address', @message = 'Total Sum of Job ID' , @subject = 'Compute Sum', @width = 133 , @query = 'IF EXISTS (SELECT 1  FROM pubs.dbo.employee WHERE 1=0)  SELECT emp_id, fname, minit, lname, job_id, job_lvl, pub_id FROM pubs.dbo.employee WHERE 1=0 COMPUTE SUM (job_id) ELSE SELECT ''No Data'' as [SUM]'
مراجع

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

خصائص

رقم الموضوع: 819955 - آخر مراجعة: 02/28/2014 04:34:24 - المراجعة: 9.4

Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Workgroup Edition, Microsoft SQL Server 2000 Desktop Engine (Windows), Microsoft SQL Server 2000 Enterprise Edition 64-bit

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