MFC استخدام فئات قاعدة البيانات مع المستندات وطرق العرض
يمكنك استخدام فئات قاعدة البيانات MFC —أى DAO أو ODBC — مع أو بدون بنية المستند\العرض. يبرز هذا الموضوع العمل مع المستندات وطرق العرض. وهو يوضح:
كيفية كتابة تطبيق يستند إلى نموذج باستخدام كائن CRecordView أو CDaoRecordView كطريقة العرض الرئيسية على المستند الخاص بك.
كيفية استخدام كائنات مجموعة السجلات في المستندات وطرق العرض الخاصة بك .
اعتبارات أخرى
للحصول على بدائل ، راجع MFC: استخدام فئات قاعدة البيانات بدون المستندات وطرق العرض.
كتابة تطبيق يستند إلى نموذج
العديد من تطبيقات الوصول إلى البيانات هى مستندة إلى النماذج. واجهة المستخدم هى نموذج يحتوي على عناصر التحكم حيث يفحص المستخدم, أو يدخل , أو يحرر البيانات . لجعل التطبيق الخاص بك يستند إلى نموذج , قم باستخدام فئة CRecordView أو CDaoRecordView. عند تشغيل معالج التطبيقات MFC و اختيار نوع العميل ODBC على الصفحة دعم قاعدة البيانات , المشروع يستخدم CRecordView للحصول على فئة طريقة العرض. المعالجات لم تعد تدعم DAO ، لذلك إذا كنت تريد استخدام CDaoRecordView ، يجب أن تقوم بترميزها يدوياً.
في تطبيق يستند إلى نموذج , كل كائن عرض سجلات يخزن مؤشراً إلى كائن CRecordset أو CDaoRecordset . آلية تبادل حقل السجل الخاص بإطار العمل (RFX) تقوم بتبادل البيانات بين مجموعة السجلات و بين مصدر البيانات. الآلية (DDX) لتبادل بيانات الحوار تتبادل بيانات بين الأعضاء بيانات الحقل لكائن مجموعة السجلات و عناصر التحكم الموجودة في النموذج. CRecordViewأوCDaoRecordViewأيضا يوفر معالج الأوامر الافتراضية دالات للتنقل من سجل إلى سجل في نموذج.
لإنشاء تطبيق يستند إلى نموذج مع معالج التطبيقات , راجع إنشاء تطبيق MFC مستند إلى النماذج و دعم قاعدة البيانات ، معالج تطبيق MFC .
للحصول على مناقشة كاملة عن النماذج راجع طرق عرض السجل .
استخدام مجموعات السجلات في المستندات وطرق العرض
العديد من التطبيقات البسيطة المستندة إلى نموذج لا تحتاج للمستندات. إذا كان التطبيق الخاص بك أكثر تعقيداً ، قد تحتاج إلى استخدام مستند كوكيل للبيانات ، لتخزين كائن CDatabase أو CDaoDatabase الذي يتصل بمصدر البيانات. التطبيقات المستندة إلى نموذج عادةً تخزن مؤشراً إلى كائن مجموعة السجلات في طرق العرض. أنواع أخرى من تطبيقات قاعدة البيانات تخزن مجموعات السجلات و كائن CDatabase أو CDaoDatabase في المستند. فيما يلي بعض إمكانيات استخدام المستندات في تطبيقات قاعدة البيانات:
إذا كنت تتصل بمجموعة سجلات في سياق محلي , قم بإنشاء كائن CRecordset أو CDaoRecordset محلياً في دوال عضو من المستند أو طريقة العرض , حسب الحاجة.
قم بالتصريح بكائن مجموعة السجلات كمتغير محلي في دالة. قم بتمرير NULL للمُنشئ , الذي يجعل إطار العمل يقوم بإنشاء وفتح كائن CDatabase أو CDaoDatabase مؤقت لك. وكبديل لذلك،قم بتمرير مؤشر إلى كائن CDatabase أو CDaoDatabase . قم باستخدام مجموعة السجلات داخل دالة والسماح لها بالتلف تلقائياً عند الخروج من الدالة.
عند تمرير NULL لمُنشئ مجموعة السجلات , إطار العمل يستخدم المعلومات التي يتم إرجاعها من قبل دالة عضو مجموعة السجلات GetDefaultConnect لإنشاء كائن CDatabase أو CDaoDatabase و يفتحه . تنفذ المعالجات GetDefaultConnect لك.
إذا كنت تتصل بمجموعة السجلات أثناء مدة بقاء المستند الخاص بك , قم بتضمين واحد أو أكثر من كائنات CRecordset أو CDaoRecordset في المستند الخاص بك.
قم بإنشاء كائنات مجموعة السجلات عند تهيئة المستند أو حسب الحاجة. يمكنك كتابة دالة تٌرجع مؤشراً إلى مجموعة السجلات إذا كانت بالفعل موجودة أو تقوم بإنشاء و فتح مجموعة السجلات إذا لم تكن موجودة بعد. يمكنك إغلاق , حذف, و إعادة إنشاء مجموعة السجلات حسب الحاجة , أو الاتصال بدالة عضو إعادة الطلب (Requery) الخاصة ا لتحديث السجلات.
إذا كنت تتصل بمصدر بيانات أثناء مدة حياة المستند الخاص بك, قم بتضمين كائن CDatabase أو CDaoDatabase أو تخزين مؤشر لكائن CDatabase أو CDaoDatabase فيه .
يقوم كائن CDatabase أو CDaoDatabase بإدارة اتصال لمصدر البيانات الخاص بك . يتم إنشاء الكائن تلقائياً أثناء إنشاء المستند , ثم تقوم باستدعاء دالة عضو Open الخاصة به عند تهيئة المستند. عندما تنشئ كائنات مجموعة السجلات في دالات عضو المستند ,تقوم بتمرير مؤشر لكائن CDatabase أو CDaoDatabase الخاص بالمستند. هذا يقوم بربط كل مجموعة سجلات بمصدر البيانات الخاص به. يتلف كائن قاعدة البيانات عادةً عند إغلاق المستند. يتم إتلاف كائنات مجموعة السجلات عادةً عند قيامهم بالخروج من نطاق الدالة.
عوامل أخرى
غالباً لا تجد التطبيقات المستندة إلى نموذج أي استخدام لإطار العمل الخاص بآلية إنشاء التسلسل لمستند , لذا قد تحتاج لإزالة ,أو تعطيل أو استبدال أوامر New و فتح على القائمة ملف. راجع مقالة إنشاء تسلسل: إنشاء التسلسل مقابل إدخال و إخراج قاعدة البيانات.
قد تحتاج أيضًا الاستفادة من إمكانيات واجهة المستخدم العديدة التي يمكن أن يدعمها إطار العمل. على سبيل المثال، يمكنك استخدام عدة كائنات CRecordView أو CDaoRecordView في نافذة التقسيم ، افتح مجموعات سجلات متعددة في النوافذ التابعة المتعددة لواجهة المستند (MDI) ،و إلخ.
قد ترغب في تنفيذ طباعة كل ما في طريقة العرض الخاصة بك , سواء كان نموذجاً يتم تطبيقه بـ CRecordView أو بـ CDaoRecordView أو شيء آخر. بما أن الفئات المشتقة من CFormView ، CRecordView و CDaoRecordView لا تدعم الطباعة، يمكنك تجاوز دالة عضو OnPrint للسماح الطباعة. لمزيد من المعلومات، راجع فئة CFormView.
ربما لا تريد استخدام المستندات و طرق العرض على الإطلاق. في هذه الحالة، راجع MFC: استخدام فئات قاعدة البيانات بدون المستندات وطرق العرض.