دعم المعاملات في OLE DB
المعاملة هي طريقة لتجميع أو تحزيم (batch) سلسلة من التحديثات لمصدر البيانات بحيث إما تنجح كافة ويتم تنفيذها في آن واحد أو (في حالة فشل أحد أي منها) لن يتم تنفيذ أيهم ويتم إرجاع المعاملة بالكامل. هذه العملية تضمن تكامل النتيجة على مصدر البيانات.
يدعم OLE DB المعاملات بـالطرق الثلاثة التالية:
العلاقة بين جلسات العمل و المعاملات
يمكن لكائن مصدر بيانات واحد إنشاء واحد أو أكثر من كائنات جلسة عمل، كل منها يمكن أن تكون داخل أو خارج نطاق معاملة في وقت محدد.
عندما لا تدخل جلسة عمل في معاملة ، يتم تنفيذ كافة العمل المنجز على مخزن البيانات في جلسة العمل هذه مباشرة عند كل استدعاء لأسلوب. ( يُشار إلي هذا أحيانًا بأنه وضع التنفيذ الأوتوماتيكي أو الوضع الضمني.)
عندما تدخل جلسة عمل في معاملة ، كافة العمل المنجز على مخزن البيانات في جلسة العمل هذه هو جزء من هذه المعاملة و يتم تنفيذه أو إحباطه كوحدة واحدة. (يُشار إلي هذا أحيانًا بأنه وضع التنفيذ اليدوي.)
دعم المعاملة خاص بالموفر. إذا كان الموفر الذي تستخدمه يدعم المعاملات ، يمكن لكائن جلسة عمل الذي يدعم ITransaction و ITransactionLocal دخول معاملة بسيطة (أي، غير متداخلة). تدعم فئة قوالب OLE DB CSession هذه الواجهات وهي الطريقة التي نوصي بها لتنفيذ دعم المعاملة في ++Visual C.
بدء تشغيل و إنهاء العملية
تقوم باستدعاء الأساليب StartTransaction ، Abort و Commit في كائن مجموعة الصفوف في المستهلك.
استدعاء ITransactionLocal::StartTransaction يبدأ معاملة محلية جديدة. عند بدء تشغيل المعاملة أية تغييرات يتم إملاؤها بواسطة العمليات اللاحقة لا يتم بالفعل تطبيقهـا على مخزن البيانات حتى تنفيذ المعاملة.
استدعاء ITransaction::Commit أو ITransaction::Abort ينهي المعاملة. Commit تؤدي إلى تطبيق كافة التغييرات ضمن نطاق المعاملة على تخزين البيانات. Abort يؤدي إلى إلغاء كافة التغييرات ضمن نطاق المعاملة و ترك تخزين البيانات في الحالة التي كان عليها قبل تشغيل العملية.
المعاملات المتداخلة
تحدث المعاملة المتداخلة عند بدء تشغيل معاملة محلية جديدة عند وجود معاملة نشطة بالفعل بـجلسة عمل. يتم بدء معاملة جديدة كـمعاملة متداخلة أدني المعاملة الحالية. إذا لم يكن الموفر يدعم تداخل المعاملات، فاستدعاء StartTransaction عند وجود إحدى المعاملات النشطة فى جلسة العمل بالفعل، فإنه يقوم بـإرجاع XACT_E_XTIONEXISTS .
المعاملات الموزعة
المعاملة الموزعة هي المعاملة التي تقوم بتحديث بيانات موزعة; أي أن، البيانات على أكثر من نظام كمبيوتر متصل عبر شبكة الاتصال. إذا كنت تريد دعم المعاملات عبر نظام موزع، يجب عليك استخدام NET Framework. بدلاً من دعم معاملات OLE DB.