مجموعة حيوية

هذا الموضوع يصف المجموعات الحيوية ويتناول التوفر الخاص بهم .

ملاحظة

ينطبق هذا الموضوع علي فئات MFC ODBC بما في ذلك CRecordset. للحصول على معلومات حول المجموعات الحيوية في فئات DAO ، راجع CDaoRecordset. مع DAO ، يمكنك فتح مجموعات السجلات من نوع المجموعة الحيوية.

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

بالمثل ، عمليات التحرير التي تقوم بها لسجلات في المجموعة الحيوية تنعكس في المجموعات الحيوية قيد الاستخدام من قبل مستخدمين آخرين. السجلات التى تضيفها لا تنعكس في المجموعات الحيوية للمستخدمين الآخرين حتى إعادة الاستعلام عن المجموعات الحيوية الخاصة بهم. يتم وضع علامة "محذوف" في مجموعات سجلات المستخدمين الآخرين عند حذفك لسجلات. إذا كان لديك اتصالات متعددة إلى نفس قاعدة البيانات (كائنات CDatabase متعددة) ، مجموعات السجلات المقترنة بهذه الاتصالات تكون حالتها مثل مجموعات السجلات للمستخدمين الآخرين.

المجموعات الحيوية أكثر القيّمة عندما يجب أن تكون البيانات حيوية, كما فى (على سبيل المثال) في نظام حجز رحلات طيران.

ملاحظة

لاستخدام المجموعات الحيوية يجب أن يكون لديك برنامج تشغيل ODBC لمصدر البيانات الذي يدعم المجموعات الحيوية و لا يجب تحميل مكتبة مؤشرات ODBC. للحصول على مزيد من المعلومات, راجع توفُّر المجموعات الحيوية .

لتعيين مجموعة سجلات لتكون مجموعة حيوية ، قم بتمرير CRecordset::dynaset كمعلمة اولي إلى دالة العضو فتح لكائن مجموعة السجلات.

ملاحظة

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

توفُّر المجموعات الحيوية

فئات قاعدة بيانات MFC تدعم المجموعات الحيوية في حالة استيفاء المتطلبات التالية:

  • لا يجب أن يكون DLL مكتبة مؤشر ODBC قيد الاستخدام لمصدر البيانات هذا.

    إذا كانت مكتبة المؤشرات قيد الإستخدام , فإنها تضع قناعاً على بعض الوظائف الأساسية في برنامج تشغيل ODBC و هو لازم لدعم المجموعة الحيوية. إذا كنت تريد استخدام المجموعات الحيوية (و برنامج تشغيل ODBC لديه الوظيفة المطلوبة للمجموعات الحيوية, كما هو موضح في باقي هذا القسم) ، قد يؤدي MFC لعدم تحميل مكتبة المؤشرات عند إنشاء كائن CDatabase. لمزيد من المعلومات، راجع ODBC و OpenEx أو دالة العضو فتح للفئة CDatabase.

    في مصطلحات ODBC ، المجموعات الحيوية و اللقطات تتم الإشارة إليهما كرؤوس المؤشرات. رأس المؤشر هو نوع من التقنيات المستخدمة من أجل تعقّب موضعه في مجموعة سجلات.

  • برنامج تشغيل ODBC لمصدر البيانات الخاص بك يجب أن يدعم مؤشرات تستند إلى مجموعة المفاتيح.

    تقوم المؤشرات التي تستند إلى مجموعة المفاتيح بإدارة البيانات من جدول عن طريق الحصول على مجموعة من المفاتيح وتخزينها. يتم استخدام المفاتيح للحصول على البيانات الحالية من الجدول عند تمرير المستخدم إلى سجل معين. لتحديد ما إذا كان برنامج التشغيل الخاص بك يوفر هذا الدعم، استدع دالة ODBC APIـ :: SQLGetInfo مع المعلمة SQL_SCROLL_OPTIONS.

    إذا حاولت فتح مجموعة حيوية بدون دعم مجموعة المفاتيح ، تحصل على CDBException مع قيمة إرجاع التعليمات البرمجية AFX_SQL_ERROR_DYNASET_NOT_SUPPORTED.

  • برنامج تشغيل ODBC لمصدر البيانات الخاصة بك يجب أن يدعم الإحضار الموسع.

    الإحضار الموسع هو القدرة على التمرير للخلف كما هو للأمام عبر السجلات الناتجة من استعلام SQL. لتحديد ما إذا كان برنامج التشغيل يعتمد هذه القدرة ، استدع دالة ODBC APIـ :: SQLGetFunctions مع المعلمة SQL_API_SQLEXTENDEDFETCH.

إذا كنت تريد مجموعات حيوية قابلة للتحديث (أو لقطات عن ذلك الأمر) ، يجب أن يدعم برنامج تشغيل ODBC أيضاً إما دالة ـODBC API ‎::SQLSetPos أو التحديثات الموضوعة. دالة :: SQLSetPos تسمح لـ MFC بتحديث مصدر البيانات دون إرسال عبارات SQL. في حالة توفر هذا الدعم ، يستخدمه MFC كأفضلية في إجراء التحديثات باستخدام SQL. لتحديد ما إذا كان برنامج التشغيل يدعم :: SQLSetPos ، قم باستدعاء :: SQLGetInfo مع المعلمة SQL_POS_OPERATIONS.

التحديثات الموضوعة تستخدم بناء جملة SQL (من النموذج WHERE CURRENT OF<cursorname>) لتحديد صف محدد في الجدول من مصدر البيانات. لتحديد ما إذا كان برنامج التشغيل يدعم التحديثات الموضوعة ، قم باستدعاء :: SQLGetInfo بالمعلمة SQL_POSITIONED_STATEMENTS.

بشكل عام، المجموعات الحيوية MFC (ولكن ليس مجموعات السجلات للإرسال فقط) تتطلب برنامج تشغيل ODBC مع توافق API من مستوي 2. إذا توافق برنامج التشغيل لمصدر البيانات مع API مستوي 1، يظل بإمكانك استخدام كل من اللقطات القابلة للتحديث و التى للقراءة فقط و مجموعات السجلات التى للإرسال فقط ولكن ليس المجموعات الحيوية. ومع ذلك، يمكن لبرنامج تشغيل مستوى 1 دعم المجموعات الحيوية إذا كان يدعم الإحضار الموسع و المؤشرات التى تستند إلى مجموعة المفاتيح. لمزيد من المعلومات حول توافق ODBC ، راجع thzzea08(v=vs.100).md.

ملاحظة

إذا كنت تريد استخدام كل من اللقطات و المجموعات الحيوية, يجب أن تسندهما على كائني CDatabase مختلفين (اتصالين مختلفين).

بعكس اللقطات التي تستخدم التخزين المتوسط المؤمن بواسطة مكتبة رأس المؤشر ODBC ، المجموعات الحيوية تقوم بإحضار سجل مباشرة من مصدر البيانات بمجرد أن يتم التمرير إليه. يحتفظ هذا بالسجلات المحددة في الأصل بواسطة المجموعة الحيوية المتزامنة مع مصدر البيانات.

للحصول على قائمة برامج تشغيل ODBC التي تم تضمينها في هذا الإصدار من ++Visual C و للحصول على معلومات حول كيفية الحصول على برامج تشغيل إضافية راجع قائمة برامج تشغيل ODBC.

راجع أيضًا:

المبادئ

اتصالات قاعدة الببيانات المفتوحة (ODBC)