البحث في
قواعد
البيانات
:
تعتبر عملية البحث من اهم العمليات التي
تكون عادة من ضمن العمليات الهامة في البرمجة على قواعد البيانات حيث لا تخلو
اهمية من عمليات الإضافة و التعديل والحذف في قاعدة البيانات التي هي عبارة عن
مجموعة من السجلات التي تتضمن الحقول الحاملة لبيانات البرنامج ، ونظرًا لكثرة البيانات الموجودة فإننا نحتاج
إلى
تقنيات
بحث
سريعة
توصلنا
إلى
المعلومة المحددة من ضمن جميع
بيانات
الجدول
، و لعل هذه التقنيات تتطور بسرعة مع تطور
لغة دلفي والتي اعطتنا المجال بعدة طرق
و اوامر نستعملها في هذه العملية المهمة
على قواعد البيانات خاصة منها العلائقية .
و لعل من اهم الأوامر نجد الأمر
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 ( التصفية
( الفلترة
تستخدم التصفية
لإظهار
مجموعة
من
الحقول
تحقق
معايير
محددة
مث
ً
لا
نريد
من
الجدول
أن
يعرض
المسافرين
من
الجنسية السورية
فقط
في
جدول
المسافرين
، أو أن
نظهر
جميع
الرحلات
التي
خرجت
من
مطار
حلب
في
جدول
الرحلات .
كتاب تعلم البحث في قاعدة البيانات بالدلفي
كتاب رائع جدا فيه كل الجوانب الخاصة بالبحث في قاعدة البيانات بالدلفي
نترككم مع التحميل
قد يعجبك ايضا