FIX: لا قد يتم إرجاع السجلات عند استدعاء الدالة SQLExecute تنفيذ عبارة معدة استخدام "برنامج تشغيل SQL ODBC العميل الأصلي" في SQL Server 2008

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

اضغط هنا لرابط المقالة باللغة الانجليزية957387
الخطأ رقم: 50003391 (الإصلاح العاجل SQL)
الأعراض
يمكنك استخدام "برنامج تشغيل SQL ODBC العميل الأصلي" في Microsoft SQL Server 2008. حالة الاتصال الدالة SQLExecute تنفيذ عبارة معدة قد يتم إرجاع أية سجلات. ومع ذلك، إذا كنت تستخدم "برنامج تشغيل SQL ODBC العميل الأصلي" في SQL Server 2005 إلى استدعاء دالة SQLExecute يتم إرجاع السجلات.
السبب
قد تحدث هذه المشكلة نظرًا لوجود خطأ في برنامج SQL الأصلي العميل تشغيل ODBC في SQL Server 2008. قد تحدث في حالة استدعاء الدالة SQLBindParameter قبل كل دالة SQLExecute له. راجع قسم "مزيد من المعلومات" للحصول على مزيد من المعلومات.
الحل

معلومات التحديث التراكمي

تم إصدار الإصلاح الخاص بهذه المشكلة أولاً في التحديث التراكمي 1. لمزيد من المعلومات حول كيفية الحصول على حزمة التحديث التراكمي هذه لـ SQL Server 2008 انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
956717حزمة التحديث التراكمي 1 لـ SQL Server 2008
ملاحظة لأن وبالطريقة تراكمية، يتضمن كل إصدار إصلاح جديد كافة الإصلاحات العاجلة وأصلح كافة تصحيحات الأمان التي تم تضمينها مع SQL Server 2008 السابقة الإصدار. توصي Microsoft مراعاة تطبيق أحدث إصدار الإصلاح الذي يحتوي على هذا الإصلاح العاجل. لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
956909بناء SQL Server 2008 التي تم إصدارها بعد إصدار SQL Server 2008

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

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

في حالة تحميل الإصلاح العاجل يوجد قسم "توفر تنزيل الإصلاح عاجل" أعلى مقالة قاعدة المعارف رقم هذا. إذا لم يظهر هذا المقطع اتصل Microsoft خدمة العملاء والدعم للحصول على الإصلاح العاجل.

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

معلومات الملف

يحتوي إصدار اللغة الإنجليزية من هذا الإصلاح العاجل سمات الملف (أو أحدث منها) المسردة في الجدول التالي. يتم سرد التواريخ والأوقات الخاصة بهذه الملفات في "حسب التوقيت العالمي" (UTC). عندما تقوم بعرض معلومات الملف، يتم تحويلها إلى التوقيت المحلي. لمعرفة الفرق بين التوقيت العالمي (UTC) والتوقيت المحلي، استخدم علامة التبويب المنطقة الزمنية في عنصر التاريخ والوقت في "لوحة التحكم".
SQL Server 2008 الإصدارات 32-bit
اسم الملفإصدار الملفحجم الملفتاريخالوقتالنظام الأساسي
Kfsqlncli.dll2007.100.1755.016,920٦ سبتمبر ٢٠٠٨15: 23x 86
Sqlncli10.dll2007.100.1755.02,459,672٦ سبتمبر ٢٠٠٨15: 40x 86
SQL Server 2008، إصدارات ٦٤ بت
اسم الملفإصدار الملفحجم الملفتاريخالوقتالنظام الأساسي
Kfsqlncli.dll2007.100.1755.017,432٦ سبتمبر ٢٠٠٨20: 57x 64
Sqlncli10.dll2007.100.1755.03,158,552٦ سبتمبر ٢٠٠٨٠٩: ١٢x 64
الحل البديل
كمحاولة للتغلب على هذه المشكلة قم باستدعاء الدالة SQLBindParameter مرة واحدة. عند استدعاء الدالة SQLBindParameter تأكد من تحققت الشروط التالية:
  • تكون الوسيطة ColumnSize حجم كافية.
  • تم تعيين الوسيطة Strlen_or_IndPtr SQL_NTS.
بعد إجراء الاستدعاء الأول إلى الدالة SQLExecute يمكن نسخ قيمة السلسلة الجديدة إلى الوسيطة ParameterValuePtr.
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "تنطبق على".
معلومات أخرى
تحدث هذه المشكلة بواسطة استدعاء SQLBindParameter. إذا كان المخزن المؤقت السابق مع حجم طول القيمة التالية, لم يتم إصدار re-prepare العبارة. في المثال التالي من تتبع ODBC المخزن المؤقت المعلمة الأولي يطابق طول المعلمة الجديدة التالية.

المعلمة الأولي:
SQLBindParameter إنهاء ec8 b6c مع رمز إرجاع 0 (SQL_SUCCESS)
HSTMT 05a8e260
UWORD 1
SWORD 1 <sql_param_input>
SWORD-8 <sql_c_wchar>
SWORD-9 <sql_wvarchar>
SQLULEN 7
SWORD 0
PTR 0x028c8a98
SQLLEN 65535
SQLLEN * 0x050506f8 (14)
المعلمة الجديدة التالية:
SQLBindParameter إنهاء ec8 b6c مع رمز إرجاع 0 (SQL_SUCCESS)
HSTMT 05a8e260
UWORD 1
SWORD 1 <sql_param_input>
SWORD-8 <sql_c_wchar>
SWORD-9 <sql_wvarchar>
SQLULEN 14
SWORD 0
PTR 0x028c4f80
SQLLEN 65535
SQLLEN * 0x050506f8 (28)
مراجع
للحصول على مزيد من المعلومات حول دالة SQLExecute قم بزيارة موقع شبكة مطوري Microsoft (MSDN) التالي على الويب: للحصول على مزيد من المعلومات حول دالة SQLBindParameter قم بزيارة موقع MSDN التالي:

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

خصائص

رقم الموضوع: 957387 - آخر مراجعة: 11/17/2008 16:54:49 - المراجعة: 2.0

Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Standard Edition for Small Business

  • kbmt kbautohotfix kbexpertiseinter kbfix kbbug kbqfe kbhotfixserver KB957387 KbMtar
تعليقات