القسم 2 التصفح والملاحة
هناك طريقتان مختلفتان لإنشاء النماذج التي يمكنها الوصول إلى بيانات قاعدة البيانات. الطريقة الأولى هي استخدام Database Form Expert. لسوء الحظ، يمكن لخبراء نموذج قاعدة البيانات فقط التعامل مع المجموعة الفرعية BDE-aware (visual BDE) لمكون مجموعة البيانات. الطريقة الثانية هي وضع جميع مكونات البيانات وتوصيلها يدويًا.
تعريف واجهة المستخدم
سنقوم ببناء نموذج تصفح البيانات الخاص بنا في ثلاث خطوات. الخطوة الأولى هي تحديد واجهة المستخدم للنموذج؛ والخطوة الثانية هي إضافة مكونات الوصول إلى البيانات وتكوينها؛ والخطوة الثالثة والأخيرة هي إضافة عناصر التحكم في تصور البيانات.
قبل البدء، قم بإغلاق أية مشاريع مفتوحة. ثم تابع الخطوات التالية:
DBNavigator1.DataSource = DataSource1
DBGrid1.DataSource = DataSource1
DataSource1.DataSet = ADOTable1
ADOTable1.Connection = ADOConnection1
ADOConnection1.ConnectionString = ...
ADOConnection1.LoginPRompt = خطأ
ADOTable1.Table = 'التطبيقات'
ملاحظة: كما تمت مناقشته في الفصل الثاني، تشير خاصية ConnectionString إلى الموقع الفعلي حيث يتم تخزين البيانات وكيفية الوصول إليها. يمكنك استخدام نفس سلسلة الاتصال كما في الفصل 2، أو إنشاء واحدة بنفسك عن طريق استدعاء محرر سلسلة الاتصال.
قم بتعيين الخاصية LoginPrompt الخاصة بمكون ADOConnection إلى False لمنع ظهور واجهة تسجيل الدخول إلى قاعدة البيانات. نظرًا لأننا لم نقم بتعيين أي كلمة مرور لقاعدة البيانات، فلا نحتاج إلى مطالبة بتسجيل الدخول.
الحقول
عندما نريد تزويد المستخدمين بمجموعة السجلات بأكملها (البيانات الموجودة في الجدول)، يمكننا استخدام مكون DBGrid. على الرغم من أنه يمكننا استخدام DBGrid للسماح لمستخدمينا بإضافة وتحرير وحذف السجلات في الجدول - فإن أفضل طريقة هي استخدام كائنات الحقل لكل حقل في الجدول. تُستخدم الكائنات الميدانية في الغالب للتحكم في عرض البيانات وتحريرها في التطبيقات. باستخدام محرر الحقول، يمكننا تعيين قائمة ثابتة بكائنات الحقل لكل عمود في الجدول. يمكن استدعاء محرر الحقل بالنقر المزدوج فوق مكون DataSet. لإضافة حقول إلى قائمة الحقول الثابتة لمجموعة البيانات، انقر بزر الماوس الأيمن فوق القائمة وحدد إضافة حقول.
بالإضافة إلى عرض جميع البيانات الموجودة في الجدول (في DBGrid) للمستخدم، نحتاج أيضًا إلى استخدام مكونات تصور البيانات الموجهة ميدانيًا (الموجهة ميدانيًا) مثل مربعات التحرير. على سبيل المثال، مكون DBEdit هو إصدار تصور البيانات لفئة TEdit. وهو لبنة بناء أي برنامج لإدخال البيانات.
إن أبسط طريقة لوضع DBEdit في نموذج وتوصيله بحقل جدول هي كما يلي:
عندما تقوم بإسقاط حقل الاسم على ورقة التسمية، ستضع دلفي تسمية ومكون DBEdit عليها. التسمية التوضيحية لمكون التسمية هي نفس خاصية DisplayLabel للحقل المسحوب. يتصل مكون DBEdit بمصدر البيانات لمجموعة البيانات من خلال خاصية DataSource الخاصة به. إذا قمت بتحديد حقول متعددة من محرر الحقل ووضعتها في النموذج، فسوف تقوم دلفي بوضع أكبر عدد ممكن من مكونات Label/DBEdit في النموذج.
"إنها على قيد الحياة!"
حسنًا، كل ما يتعين علينا فعله الآن هو تنشيط الاتصال والتمرير خلال السجلات. تشير الخاصية النشطة لمكون DataSet (ADOTable) إلى ما إذا كنا متصلين بجدول. سيؤدي تعيين Active إلى True أو استدعاء الأسلوب Open إلى جعل خاصية CONonnected الخاصة بمكون ADOConnection True - وعرض البيانات في عنصر تحكم تصور البيانات المرتبط.
أولاً، تحرك، أخيراً،...
الآن نقوم بالتحضيرات النهائية. بعد ذلك نتعلم كيفية تصفح مجموعة السجلات.
يوفر مكون DBNavigator أداة سهلة الاستخدام وبسيطة لتصفح مجموعات السجلات. بالإضافة إلى إمكانيات التصفح، يوفر DBNavigator أيضًا طرقًا لمعالجة البيانات، مثل إدراج التغييرات أو حذفها أو إلغائها. على سبيل المثال، إذا نقرنا على زر الحذف، فسيتم حذف السجل المقابل من مجموعة السجلات. كل زر اختياري ويمكنك مزجه ومطابقته كيفما تشاء.
باستخدام إعدادات الزر يمكننا الانتقال إلى السجل الأخير أو الانتقال إلى السجل السابق. على سبيل المثال، يؤدي النقر فوق الزر الأخير إلى تعيين السجل الحالي إلى السجل الأخير في مجموعة السجلات وتعطيل الزرين الأخير والتالي. النقر فوق الزر الأخير له نفس تأثير استدعاء الطريقة الأخيرة لمجموعة البيانات.
تجدر الإشارة إلى أن إحدى عمليات التصفح التي لا يستطيع DBNavigator التعامل معها هي نقل السجلات للأمام أو للخلف بعدد معين من الفواصل الزمنية. يتم استخدام أسلوب MoveBy لمجموعة البيانات لوضع أي سجل بالنسبة إلى السجل الحالي في مجموعة السجلات.
هذا كل شيء لهذا الفصل. نحن الآن جاهزون لتعلم التحرير والاستعلام عن مجموعة البيانات، وهو ما سيتم شرحه في الفصول التالية من هذا البرنامج التعليمي...
26 ديسمبر 2002 الساعة 20:49