أخر الأخبار

البحث في قاعدة البيانات بالدلفي





البحث في قواعد البيانات :
                     تعتبر عملية البحث من اهم العمليات التي تكون عادة من ضمن العمليات الهامة في البرمجة على قواعد البيانات حيث لا تخلو اهمية من عمليات الإضافة و التعديل والحذف في قاعدة البيانات التي هي عبارة عن مجموعة من السجلات التي تتضمن الحقول الحاملة لبيانات البرنامج  ، ونظرًا لكثرة البيانات الموجودة  فإننا نحتاج إلى تقنيات بحث سريعة توصلنا إلى المعلومة المحددة من ضمن جميع بيانات الجدول ، و لعل هذه التقنيات تتطور بسرعة مع تطور لغة دلفي والتي اعطتنا المجال بعدة طرق 
و اوامر نستعملها في هذه العملية المهمة على قواعد البيانات خاصة منها العلائقية .
و لعل من اهم الأوامر نجد الأمر
 Locate  
                         من اهم خصائص هذا الأمر انه يضع  مؤشر السجل الحالي عند أول سجل يطابق شروط البحث، باستخدام هذه الطريقة يمكننا البحث عن قيمة لحقل ما حيث يأخذ هذه المنهج الصيغة التالية  :
Locate ( 'FieldName',SearchValue,Option ) ;
  حيث أن  Locate   : هي الأداة الخاصة بالبحث.
 و fieldname  : هو اسم الحقل الذي سنبحث فيه عن القيم.
  SearchValue :القيمة التي سيتم البحث عنها.
 : Option  تحدد خيارات البحث وتأخذ القيم التالية :
   عدم التميز بين الأحرف الكبيرة والصغيرة
Option = [loCaseInsensitive ] ,
البحث في جزء من الكلمة أي أن البحث عن قيمة " محم " يمكن أن يعيد " محمد "أو " محمود"
Option = [ loPartiaKey ] ; "
   Option = [ loCaseInsensitive , loPartiaKey ];  دمج الخيارين السابقين
Option = [ ]; لا نريد استخدام أي من الخيارين السابقين
في الحالة False في حال استطاع إيجاد القيمة المطلوبة في جدول البحث والقيمة True يعيد هذا المنهج القيمة
المعاكسة .
Lookup  
يعيد هذا المنهج مصفوفة من القيم لمجموعة من حقول الجدول دون أن تغير موضع السجل
ملاحظات :
للبحث في أكثر من حقل في نفس الوقت مثال استبدل التعليمة الأولى في Lookup 1  يمكن استخدام التابع
المثال السابق بالتعليمة :
lookupResult := Table1.Lookup('Pno;Pname',VarArrayof
([strtoint(edit1.Text),Edit2.text]),'PName;Nationalty');
أنهما يستطيعان التعامل مع حقول مفهرسة وغير مفهرسة ، lookup و Locate 2  من أهم مزايا المنهجين
ويستخدمان أيضًا خوارزميات متقدمة للبحث حيث يستفيدان من الحقل إذا كان مفهرسًا و يطبقان عمليات الفرز 
FindKey
                      هذا المنهج خاص بالتعامل مع الحقول المفهرسة حيث تكون عمليات البحث أسهل حيث يأخذ المنهج  قيمة الحقل التي سيبحث عنها ويعيد قيمة بوليانية تدل على عثور هذا المنهج على السجل المطلوب ويقوم بنقل مؤشر السجل الحالي إلى السجل المطابق لشروط البحث
مثال : في حدث الضغط المثال السابق على زر اكتب التعليمة التالية :
If not Table1.FindKey( [ Strtoint ( edit1.text)]) Then
Showmessage ( 'the Record is not Found');
لأنه المفتاح الرئيسي ) عن القيمة المكتوبة في العنصر ) PNo تقوم هذه التعليمة بالبحث في الفهرس الافتراضي
أما ،True وفي حال تم إيجادها ينتقل مؤشر السجل الحالي للسجل المطابق لنتيجة البحث ويعيد المنهج القيمة Edit
False في حال لم توجد النتيجة فيعيد التابع القيمة
Table للعنصر IndexName  للبحث في الفهارس الثانوية يجب تحديد الفهرس الثانوي عن طريق الخاصة
ويمكن تحديدها أثناء التصميم أو أثناء التنفيذ .
تذكر أننا ) PNameIndex القيمة IndexName في الخاصة Table مثال : في المثال السابق أعط العنصر 1
DbGrid ولاحظ تغير ترتيب السجلات في العنصر ( Database Desktop عرفنا هذا الفهرس في البرنامج
. PName مباشرة حيث سيصبح ترتيب السجلات اعتمادًا على الترتيب الأبجدي في الحقل
عدل التعليمة في حدث الضغط على زر بالشكل التالي :
If not Table1.FindKey([edit1.text]) then
Showmessage ( 'the Record is not Found');
نفذ البرنامج وابحث عن اسم مسافر ما .....
 وجدنا أيضًا أنه يمكن أن تكون المفاتيح الرئيسية عبارة عن حقلين أو أكثر  كذلك الأمر بالنسبة للفهارس
بالشكل : FindKey الثانوية وفي هذه الحالة نستخدم المنهج
TableName.FindKey ( [ SearchValue1,SearchValue2 ,,SearchValue3]) ;
حيث سيتم Table1.FindKey( [ مثال : يمكن البحث في جدول " المسافرين والرحلات" باستخدام التعليمة : ([ 2,3
. البحث عن المسافر رقم 2 في الرحلة 4
 FindNearest   
يشبه المنهج السابق إلا أنه ينتقل إلى سجل مطابق أو إلى أقرب سجل مطابق أو إلى أقرب سجل مطابق للقيمة
( False أو True المراد البحث عنها ، كما أنه لا يعيد قيمة ( لا يعيد
مثال :
عدل التعليمة في حدث الضغط على الزر السابق لتصبح بالشكل :
Table1.FindNearest ([edit1.text]);
جزء من اسم مسافر " مح" مث ً لا واضغط على الزر ستقوم التعليمات بوضع مؤشر السجل Edit ادخل في العنصر 1
الحالي عند أول مسافر أسمه " مح " أو أسمه قريب إلى "مح " مثل "محمد" أو "محمود".
: Filter ( التصفية ( الفلترة
تستخدم التصفية لإظهار مجموعة من الحقول تحقق معايير محددة مث ً لا نريد من الجدول أن يعرض المسافرين من
الجنسية السورية فقط في جدول المسافرين ، أو أن نظهر جميع الرحلات التي خرجت من مطار حلب في جدول
الرحلات .





كتاب تعلم البحث في قاعدة البيانات بالدلفي


كتاب رائع جدا فيه كل الجوانب الخاصة بالبحث في قاعدة البيانات بالدلفي





نترككم مع التحميل

http://adf.ly/uhH4h

قد يعجبك ايضا
تعليقات
تعليقات Bloggerتعليقات Disqus



حجم الخط
+
16
-
تباعد السطور
+
2
-