إشترك

البحث في قواعد البيانات في الدلفي -الجزء الأول -


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

البحث باستخدام المنهج locate  
إبداء مشروع جديد و قم بربط قاعدة البيانات أكسس مع الدلفي و بعدها أضف  مكون edit1  للنموذج لكتابة الاسم الذي نريد البحث عنه و بعدها قم بكتابة الأمر التالي في حدث التغير الخاص ب :
adoTable1.Locate('prénom',Edit1.Text , [])
شرح الكود :
Adotable1  : هو الجدول الذي نريد البحث فيه ' اطلع على الموضوعالسابق لمعرفة المزيد'
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 للفصل بين القيم فقط
نلقاكم في التدوينة التالية و في الجزء التالي باستخدام أساليب جديدة و سنتعلم في الجزء الثالث أفضل أنواع البحث و هو البحث بالتصفية ' الفلترة '

السلام عليكم و رحمة الله تعالى و بركاته



جميع الحقوق محفوظة لــ تعلم دلفي بالعربية 2015 ©