INFO: متى و كيفية استخدام dbcancel() أو sqlcancel()

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

117143
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
الموجز
دالة dbcancel() و sqlcancel() Visual Basic SQL (VBSQL) مكافئة ، تستخدم غالباً في التطبيقات عند قيامهم لا يجب أن يكون. النسبة مئوية كبيرة من مكتبة DB (مكتبة - DB) أو VBSQL البرمجة ساق مشاكل من تطبيقات استخدام استدعاء API هذا الشائعة. تتيح هذه المقالة بعض الإرشادات العملي على عند و متى لا تستخدم dbcancel() و Sqlcancel().
معلومات أخرى
بشكل عام مستحسن وتقوم اعتبار مكتبة DB برمجة إجراءاً جيداً أن عمليات كافة النتائج إلى أن هناك المزيد من نتائج كافة الصفوف إلى أن يوجد عدد صفوف عند استرداد نتائج أو بعد إرسال دفعة SQL للعمليات إلى الملقم.

لا يجب أن يكون برنامج مكتبة DB المكالمات dbresults()/sqlresults() وإعادة تلوينها إلى عدد مرات التكرار predetermined الثابت dbnextrow()/sqlnextrow().

على سبيل المثال، يجب استدعاء dbresults() و dbnextrow() مثل هذا:
   while ((result_code = dbresults(dbproc)) != NO_MORE_RESULTS)        {             while (dbnextrow(dbproc) != NO_MORE_ROWS)        }				

استدعاء dbresults() و dbnextrow() كـ أعلاه لا يمكن وتتسبب غالباً ذلك التطبيق المشكلات التي قد لا تصبح evident حتى وقت لاحق في تطوير أو اختبار عند اتخاذ الإجراء الصحيح المكلفة.

في حالة تطبيق مطلوب الوصول فقط x الصفوف من مجموعة نتائج بعض السبب، نوصي التي transact أمر SQL "تعيين rowcount x" يمكن استخدامه بدلاً من استدعاء dbnextrow مرات x ثم dbcancel(). هناك عدة أسباب عدم استخدام dbcancel() كجزء من معالجة إجراءات نتائج القياسية.

عند عدم لاستخدام dbcancel()

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

علاوة على عند التشغيل في هذا السياق ، يكون من السهل أن تطبيق يتم فعلياً midst معاملة المعرفة من قبل المستخدم الذي و/تم أبداً الالتزام بها أو التراجع عن فقدان. بالإضافة إلى ذلك، هناك أيضاً بعض تباينات كيفية dbcancel أو إشارة الاهتمام الذي كان يتم تنفيذ من نظام أساسي إلى النظام الأساسي.

ملاحظة: يتم ثابتة تطبيقات Microsoft SQL Server dbcancel() عبر كافة الأنظمة الأساسية Microsoft SQL Server مثل Windows NT x 86 و Alpha RISC الأنظمة الأساسية. تحدث مشكلات التوافق بين تطبيقات مختلفة Sybase و Microsoft SQL Server بشكل أساسي. أيضاً، هذه الاختلافات غالباً stem من المشكلات المتعلقة النقل مثل كيفية تطبيق بيانات إخراج الشريط TCP/IP الخاص بمورد واحد وكيفية تفاعله مع تطبيق بيانات إخراج الشريط TCP/IP الخاص بمورد آخر نتائج net التي يمكن أن يسبب مشاكل في إمكانية النقل في تطبيقات مكتبة DB باستخدام dbcancel().

عند استخدام dbcancel()

يجب أن يتم استخدام dbcancel() في الحالات حيث يحتاج المستخدم ليمكنك التحكم في التطبيق. في هذه البيئة يمكن للمبرمج معالجة استثناء المستخدم إصدار dbcancel في بيئة حيث لا يعمل dbcancel() بواسطة عن الاستجابة مع رسالة مثل "غير معتمدة على هذا النظام الأساسي dbcancel()!". مبرمجاً وقد ترغب أيضاً استخدام dbcancel() حالة من فشل أمر مكتبة DB كجزء من الأعلى الإجراء نظيف العمليات مكتبة DB effected.
4.20a oob تبدأ dblib نهاية tran

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

خصائص

رقم الموضوع: 117143 - آخر مراجعة: 01/24/2014 15:44:50 - المراجعة: 3.1

  • Microsoft SQL Server 4.21a Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • kbnosurvey kbarchive kbmt kbinfo kbprogramming KB117143 KbMtar
تعليقات