MFC استخدام فئات قاعدة البيانات بدون المستندات وطرق العرض

في بعض الأحيان قد لا تحتاج إلى استخدام بنية عرض/مستند إطار العمل في تطبيقات قاعدة البيانات الخاصة بك. هذا الموضوع يوضح :

  • متى لا تحتاج لاستخدام المستندات مثل إنشاء تسلسل للمستند.

  • خيارات معالج التطبيق لدعم التطبيقات بدون إنشاء تسلسل وبدون أوامر قائمة ملف المتعلقة بالمستند مثل جديد و فتح و حفظو حفظ باسم .

  • كيف تعمل مع تطبيق يستخدم مستند أدنى.

  • كيف تبنى تطبيق بدون مستند أو عرض.

متى لا تحتاج إلى المستندات

بعض التطبيقات لها مفاهيم مختلفة عن المستند. هذه التطبيقات عادةً تقوم بتحميل كل أو معظم الملف من التخزين إلى الذاكرة بالأمر فتح ملف. تكتب الملف المحدّث مرة أخرى إلى التخزين مرة واحدة بالأمر حفظ أو الأمر حفظ باسم . ما يراه المستخدم هو ملف بيانات.

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

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

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

  • استخدم إطار النافذة، الذي ترسم داخله مباشرة، بدلاً من استخدام عرض. في هذه الحالة، يمكنك حذف المستند و تخزين أي بيانات أو اتصالات بيانات في كائن نافذة الإطار.

خيارات معالج التطبيق للمستندات و طرق العرض

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

الخيار

عرض

مستند

لا يوجد

مشتق من CView.

لا يوفر الدعم لقاعدة البيانات. يكون هذا هو الخيار الافتراضي.

إذا حددت الخيار دعم بنية عرض/مستند على الصفحة نوع التطبيق MFC معالج التطبيق، يمكنك الحصول على دعم المستند بالكامل بما في ذلك التسلسل و أوامر New ، فتح و حفظ حفظ باسم فى القائمة ملف. راجع تطبيقات بدون مستند.

ملفات رأس فقط

مشتق من CView.

توفر المستوى الأساسي لدعم قاعدة البيانات للتطبيق الخاص بك.

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

عرض قاعدة البيانات بدون دعم الملفات

مشتق من CRecordView.

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

يتضمن ملفات الرأس و مكتبات الارتباط و عرض السجل و مجموعة السجلات الخاصة بقاعدة البيانات. (متوفر فقط للتطبيقات التي تحتوي علي الخيار دعم بنية عرض/مستند المحدد في الصفحة نوع التطبيق MFC معالج التطبيق.)

طريقة عرض قاعدة البيانات مع دعم الملفات

مشتق من CRecordView.

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

يتضمن ملفات الرأس و مكتبات الارتباط و عرض السجل و مجموعة السجلات الخاصة بقاعدة البيانات. (متوفر فقط للتطبيقات التي تحتوي علي الخيار دعم بنية عرض/مستند المحدد في الصفحة نوع التطبيق MFC معالج التطبيق.)

للحصول على شرح بدائل السَلسَلة و الاستخدامات البديلة للسَلسَلة, راجع التسلسل: أعضاء البيانات مقابل.أعضاء البيانات الإدخال/الإخراج.

التطبيقات بالمستندات الدنيا

معالج تطبيق MFC له خياران يدعمان تطبيقات الوصول إلى البيانات المستندة إلى نموذج. كل خيار ينشئ فئة و مستند عرض مشتقين من CRecordView. وهي تختلف في ما تتركه خارج المستند.

المستند بدون دعم الملفات

حدد خيار عرض قاعدة البيانات بدون دعم الملفات لقاعدة بيانات معالج التطبيق إذا لم تكن بحاجة إنشاء تسلسل للمستند. المستند يخدم الأغراض المفيدة التالية:

  • هو مكان مناسب لتخزين كائن CRecordset.

    هذا الاستخدام يوازى مفاهيم المستندات العادية: يخزن المستند البيانات (أو، في هذه الحالة، مجموعة من السجلات) و طريقة العرض هى طريقة عرض المستند.

  • إذا كان التطبيق لديك يقدم طرق عرض متعددة (كطرق عرض سجل متعددة)، يدعم المستند تنسيق طرق العرض.

    إذا كانت طرق العرض المتعددة تظهر نفس البيانات، يمكنك استخدام دالة العضو CDocument::UpdateAllViews للتنسيق بين التحديثات لكافة طرق العرض عندمايقوم أي عرض بتغيير البيانات.

يتم استخدام هذا الخيار عادةً في التطبيقات المستندة إلى النماذج البسيطة. التطبيق يدعم بنية ملائمة لمثل هذه التطبيقات تلقائياً.

المستند بدعم الملفات

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

معالج التطبيق يدعم هذا الخيار، و لكن يجب أن تكتب التعليمات البرمجية التي تقوم بسَلسَلة المستند. قم بتخزين المعلومات المتسلسلة في أعضاء بيانات المستند.

تطبيقات بدون مستند

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

دعم قاعدة البيانات بواجهة مستخدم

إذا كان لديك واجهة مستخدم (بخلاف ، على سبيل المثال، واجهة سطر أوامر وحدة التحكم) ، يرسم التطبيق الخاص بك مباشرةً في مساحة عميل نافذة الإطار بدلاً من العرض. مثل هذا التطبيق لا يستخدم CRecordView ، CFormView, أو CDialog لواجهة المستخدم الرئيسية، ولكن عادةً يستخدم CDialog للحوارات العادية.

كتابة تطبيقات بدون مستندات

لأن معالج التطبيق لا يدعم إنشاء تطبيقات بدون مستندات، يجب كتابة فئات CWinApp المشتقة الخاصة بك و إذا لزم الأمر، قم أيضاً بإنشاء فئة CFrameWnd أو CMDIFrameWnd. تجاوز CWinApp::InitInstance و قم بالتصريح بكائن التطبيق كـ:

CYourNameApp theApp;

ما زال إطار العمل يوفر آلية مخطط الرسالة و العديد من الميزات الأخرى.

دعم قاعدة البيانات المنفصل عن واجهة المستخدم

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

  • كائن وصول إلى البيانات متوسط، تقوم التطبيقات الأخرى (العملاء) باستدعائه للمعالجة الخاصة للبيانات بين التطبيق و مصدر البيانات.

  • التطبيق الذى يعالج البيانات دون تدخل من المستخدم مثل التطبيق الذي ينقل البيانات من تنسيق قاعدة بيانات إلى آخر أو واحد يقوم بعمل العمليات الحسابية و أداء اتحديثات الدفعية.

لأنه لا مستند يملك كائن CRecordset أو CDaoRecordset, قد ترغب في تخزينه كعضو بيانات مضمن في فئة التطبيق المشتقة من CWinApp الخاصة بك. البدائل تتضمن:

  • عدم الإبقاء على كائن CRecordset أو CDaoRecordsetعلى الإطلاق. يمكنك تمرير NULL إلى مُنشئات فئات مجموعة السجلات الخاصة بك. في هذه الحالة، إطار العمل يقوم بإنشاء الكائن المؤقت CDatabase أو CDaoDatabase باستخدام المعلومات في دالة GetDefaultConnect الخاصة بمجموعة السجلات. هذا هو الأسلوب البديل الأكثر ملاءمة.

  • جعل الكائن CRecordset أو CDaoRecordset متغير عمومي. يجب أن يكون هذا المتغير مؤشر إلى كائن مجموعة السجلات الذي تقوم بإنشائه بشكل حيوي في تجاوز CWinApp::InitInstance الخاص بك. هذا يؤدى إلى تجنب محاولة إنشاء الكائن قبل تهيئة إطار العمل.

  • استخدام مجموعة السجلات كما كنت ستفعل ضمن سياق مستند أو طريقة عرض. إنشاء مجموعات السجلات في دالة العضو لكائنات التطبيق أو نافذة الإطار الخاصة بك.

راجع أيضًا:

المبادئ

فئات MFC لقاعدة البيانات ( ODBC و DAO)