السلام عليكم و رحمة
الله تعالى و بركاته في درس اليوم سنتحدث عن كيفية البحث في قواعد البيانات في
جزئه الأول و هذا الموضوع يعتبر من أهم
المواضيع لكل من يريد أن يكون مبرمجا فلا يوجد برنامج يعمل على قاعدة بيانات و لا
يمكن البحث فيها لذلك فإن الموضوع مهم جدا و انا أعتبه أهم شيء في البرامج المبنية على قواعد البيانات و لكن
لم أجد أي موضوع عربي يتحدث عن الموضوع المهم
و بعد بحث طويل هذه هي النتائج التي توصلت إليها
البحث باستخدام المنهج locate
|
إبداء مشروع جديد و قم بربط قاعدة البيانات أكسس مع
الدلفي و بعدها أضف مكون edit1 للنموذج لكتابة الاسم الذي نريد البحث عنه و
بعدها قم بكتابة الأمر التالي في حدث التغير الخاص ب :
adoTable1.Locate('prénom',Edit1.Text
, [])
|
شرح الكود :
Locate :
هذا هو المنهج الذي استعملناه في البحث
داخل قاعدة البيانات و الذي سنشرحه الآن
Prénom : هو اسم الحقل الذي سنبحث فيه في قاعدة
البيانات و يمكن تغيره إلى اسم حقلكم
Edit1.text :
هذا هو النص الذي سنبحث عنه وهو النص الموجودة في الأداة و يمكن استبداله
[] : هنا سنضع خيارات البحث في قاعدة البيانات و التي سنتطرق إليها بعد لحظات
الآن قم بتجربة
البرنامج و أكتب اسم ما أو قيمة ما موجودة في الحقل الذي سنبحث فيه و هو في حالتنا
prénom و يمكن تغيره إلى الحقل الموجود في قاعدة
البيانات الخاصة بك و لن يتحرك مؤشر الفأرة من مكانه إلى إذا كانت القيمة الموجودة
في الأداة هي نفسها الموجودة في قاعدة البيانات و إذا كنت تريد أن يتغير مكان مؤشر
الفأرة عندما تكون الأحرف الأولى فقط متشابه فتابع معي :
خيار loPartialKey : يسمح لك هذا الخيار بالبحث عن جزء من الكلمة يعني
إذا أردت البحث عن احمد تكتب " اح" و سيذهب مؤشر الفأرة نحوه لكن إذا
كان هناك أحد إسمه يبدأ ب " اح " و هو قبل احمد فلن يتوجه المؤشر نحو
احمد و لتجربة الخير عليك بإضافته إلى مابين [] في الكود السابق هكذا :
adoTable1.Locate('prénom',Edit1.Text
, [loPartialKey])
|
خيار loCaseInsensitive : هذا الخيار لعدم التميز بين الأحرف الكبيرة و
الصغيرة " بالغة الأجنبية فقط " مثلا أضف إلى قاعدة البيانات اسمين
باللغة الفرنسية mohammed و Mohammed و إذا كان Mohammed هو الأقل في الترتيب فسيكون هو من يشير إليه
المؤشر و لكن إذا كنت تريد البحث في حقلين من نفس قاعدة البيانات " نفس
الجدول " تابع معي :
البحث
باستخدام منهج locate في حقلين أو أكثر : يعتبر هذا الأمر
مهما جدا حيث أن هناك جداول تحتوي على عدد كبير "مثلا "من المرضى الذين
يحملون نفس الاسم و ربما أيضا نفس اللقب لذلك يصعب التفرقة بين المرضى و لكن لكل
مريض ما يميزه "مثلا" رقم هاتف’مدينة
جاء منها ’’ لذلك فإن خاصية البحث في حقلين تكون مهمة جدا و للقيام بالبحث في
حقلين ما عليك بتغير الكود السابق إلى :
adotable1.Locate('pname;Nationalty',vararrayof([
edit1.Text,Edit2.text]),[])
|
ملاحظة : استعملنا التابع VarArrayOf
للفصل بين القيم فقط
نلقاكم
في التدوينة التالية و في الجزء التالي باستخدام أساليب جديدة و سنتعلم في الجزء
الثالث أفضل أنواع البحث و هو البحث بالتصفية ' الفلترة '
|
السلام
عليكم و رحمة الله تعالى و بركاته