الأعراض
إذا قمت بتشغيل إجراء مخزن عن بعد مع معلمات الإخراج على خادم مرتبط من خلال برنامج تشغيل ODBC SQL Server، فلن يتمكن برنامج تشغيل ODBC من استرداد معلمة الإخراج وقد تتلقى رسالة الخطأ التالية:
[Microsoft] [ODBC SQL Server Driver]خرق سمة نوع البيانات المقيدة
الحل
يتوفر الإصلاح العاجل المدعوم من Microsoft. ومع ذلك، يهدف هذا الإصلاح العاجل إلى تصحيح المشكلة الموضحة في هذه المقالة فقط. تطبيق هذا الإصلاح العاجل فقط على الأنظمة التي تواجه هذه المشكلة المحددة. قد تتلقى هذه الإصلاحية العاجلة اختبارا إضافيا. لذلك، إذا لم تتأثر بشدة بهذه المشكلة، نوصي بالانتظار حتى يتم تحديث البرنامج التالي الذي يحتوي على هذا الإصلاح العاجل.
إذا كان الإصلاح العاجل متوفرا للتنزيل، فهناك قسم "متوفر تنزيل الإصلاح العاجل" في أعلى مقالة قاعدة المعارف هذه. إذا لم يظهر هذا المقطع، فاتصل بخدمة عملاء Microsoft والدعم للحصول على الإصلاح العاجل.
ملاحظة إذا حدثت مشاكل إضافية أو إذا كانت هناك حاجة إلى أي استكشاف للأخطاء وإصلاحها، فقد تحتاج إلى إنشاء طلب خدمة منفصل. سيتم تطبيق تكاليف الدعم المعتادة على أسئلة الدعم الإضافية والمشاكل غير المؤهلة لهذا الإصلاح العاجل المحدد. للحصول على قائمة كاملة بأرقام هواتف خدمة العملاء والدعم من Microsoft أو لإنشاء طلب خدمة منفصل، تفضل بزيارة موقع Microsoft على ويب التالي:
http://support.microsoft.com/contactus/?ws=supportلاحظ أن نموذج "Hotfix download available" يعرض اللغات التي يتوفر الإصلاح العاجل لها. إذا لم تتمكن من رؤية لغتك، فهذا لأن الإصلاح العاجل غير متوفر لتلك اللغة.
' يحتوي الإصدار الإنجليزي من هذا الإصلاح العاجل على سمات الملف (أو الأحدث) المدرجة في الجدول التالي. وقد تم سرد التواريخ والأوقات الخاصة بهذه الملفات بالتوقيت الدولي المنسق (UTC). وعندما تقوم بعرض معلومات الملف، يتم تحويلها إلى التوقيت المحلي. لمعرفة الفرق بين التوقيت الدولي المنسق (UTC) والتوقيت المحلي، استخدم علامة التبويب المنطقة الزمنية الموجودة في أداة "التاريخ والوقت" الموجودة في "لوحة التحكم".
MDAC 2.7 Service Pack 1
Date Time Version Size File name
----------------------------------------------------------
12-Nov-2002 02:42 2000.81.9031.12 24,576 Odbcbcp.dll
12-Nov-2002 02:41 2000.81.9031.12 385,024 Sqlsrv32.dll
MDAC 2.8
Date Time Version Size File name
---------------------------------------------------------
15-Jun-2004 00:22 2000.85.1045.0 28,672 Dbnmpntw.dll
15-Jun-2004 00:21 2.80.1045.0 147,456 Msadds.dll
15-Jun-2004 00:21 2.80.1045.0 512,000 Msado15.dll
15-Jun-2004 00:21 2.80.1045.0 163,840 Msadomd.dll
15-Jun-2004 00:21 2.80.1045.0 184,320 Msadox.dll
15-Jun-2004 00:21 2.80.1045.0 53,248 Msadrh15.dll
15-Jun-2004 00:21 2.80.1045.0 225,280 Msdaora.dll
15-Jun-2004 00:21 2.80.1045.0 147,456 Msdart.dll
15-Jun-2004 00:21 2.575.1045.0 139,264 Msorcl32.dll
15-Jun-2004 00:21 3.525.1045.0 221,184 Odbc32.dll
15-Jun-2004 00:22 2000.85.1045.0 24,576 Odbcbcp.dll
15-Jun-2004 00:21 2.80.1045.0 442,368 Oledb32.dll
15-Jun-2004 00:21 2000.85.1045.0 503,808 Sqloledb.dll
15-Jun-2004 00:21 2000.85.1045.0 401,408 Sqlsrv32.dll
15-Jun-2004 00:08 2000.85.1045.0 208,896 Sqlxmlx.dll
ملاحظة للحصول على قائمة بكافة الإصلاحات العاجلة المتوفرة ل MDAC 2.8، انقر فوق رقم المقالة التالي لعرض المقالة في قاعدة معارف Microsoft:
839801 FIX: تتوفر الإصلاحات العاجلة ل MDAC 2.8
الحالة
أقرت Microsoft أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".
مزيد من المعلومات
خطوات إعادة إنتاج السلوك
-
استخدم التعليمات البرمجية التالية لإنشاء إجراء مخزن SQL Server مع معلمات الإخراج على خادم مرتبط:
USE pubs GO CREATE PROCEDURE dbo.sample_stored_procedure @op varchar(20) output AS set @op = 'demo string' return 0 GO
لاحظ أنك لا تتلقى رسالة الخطأ المدرجة في المقطع "الأعراض" إذا كان الإجراء المخزن يرجع مجموعة نتائج.
-
يصل نموذج التعليمات البرمجية لتطبيق Microsoft Visual Basic التالي إلى الإجراء المخزن عن بعد على خادم مرتبط. في نموذج التعليمات البرمجية التالي، srv1وsrv2
هما الخادمان اللتين تعملان SQL Server، وأنت تقوم بإنشاء srv2 كخادم مرتبط على srv1.Dim cn As new ADODB.Connection Dim cmd As new ADODB.Command Dim prm As ADODB.Parameter cn.Open "Driver={SQL Server};Server=srv1;UID=sa;PWD=sa_password;" cmd.ActiveConnection = cn cmd.CommandType = adCmdStoredProc cmd.CommandText = "srv2.pubs.dbo.sample_stored_procedure" Set prm = cmd.CreateParameter("op", adVarChar, adParamOutput, 20) cmd.Parameters.Append prm cmd.Execute Debug.Print prm.Value cn.Close Set cn = Nothing