إشترك

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


بسم الله الرحمان الرحيم
السلام عليكم و رحمة الله تعالى  و بركاته .درس اليوم هو الجزء الثالث من سلسلة البحث في قواعد البيانات و هذا هو الجزء الأخير من هذه السلسلة و في هذا الدرس سنتعرف على أفضل طريقة للبحث في قواعد البيانات و هي الفلترة هذا مصلح باللغة الإنجليزية و معناه باللغة العربية التصفية أو الترشيح حيث أننا نرى هذا النوع من البحث في كل مكان " في محركات البحث في الهواتف النقالة " لذلك اخترت هذا النوع كأفضل طريقة للبحث و نبدأ على بركة الله
عملية الفرز في الدلفي
يجب أن تقوم بما كنا نفعله دائما ألا و هو ربط قاعدة البيانات أكسس مع الدلفي بالإضافة إلى : إضافة مكون edit  و كتابة الأمر التالي في حدث OnChange  المتعلق بهذا المكون :
var
nom:string;
begin
ADOTable1.Filter := '';
if (Edit1.Text) = '' then exit ;
try
nom    := QuotedStr (Edit1.Text + '*');
if (Edit1.Text <> '')  then
ADOTable1.Filter:= Format('(nom LIKE %s)', [nom])
else
ADOTable1.Filtered := Trim((Edit1.Text)) <> '' ;
except
abort;
end;
end;

 شرح مختصر للكود :
أولا قمنا بتعريف متغير nom  من نوع string  و بعدها بدأ الكود حيث أننا قمنا بجعل خاصية التصفية filter  تساوي نص فارغ و بعدها بدأت جملة الشرط و الشرط هو إذا كان النص في أداة edit1  فارغ سينقذ الأمر التالي حيث بدأ الأمر بجملة try  و هو ينتهي except  و هذه الجملة تقوم بحماية الكود أي لن يحدث الخطأ و الكود الذي بين هذه الجملة ينفذ و الكود المحمي هو المتغير nom  يساوي النص الموجود في الأداة + *  و بعدها تبدأ جملة شرط جديدة و هذه الجملة هي إذا كان  النص أقل أو أكبر من '' يعني فارغة سينقذ الأمر التالي و الذي يحدد لنا كيفية و صيغة  التصفية في الجدول adotable1  و نحن في هذا الكود سنبحث في الحقل nom  و بعدها يأتي الاستثناء الذي يحدث في حال لم يتحقق الشرط السابق و الاستثناء هو  إذا لم تجد أي نتائج مطابقة للبحث أجعل محتوى الجدول فارغ إذا كان هناك على الأقل حرف مكتوب و الآن سيكون شكل البرنامج أثناء التصميم هكذا :




و عند كتابتك للحرف y في الأداة أثناء التنفيذ سيكون البرنامج بالشكل التالي :

الآن سأقدم لكم الكود الذي يمكنكم من البحث في حقلين لكن دون شرح :
أكتب الكود التالي في حدث OnChange  للمكون edit1
var
nom, prénom:string;
begin
ADOTable1.Filter
if (Edit1.Text + edit2.Text) = '' then exit
try
nom    := QuotedStr (Edit1.Text+'*');
prenom := QuotedStr (edit2.Text+'*')
if (Edit1.Text <> '') AND (edit2.Text <> '') then
ADOTable1.Filter:= Format('(nom LIKE %s) and (prénom LIKE %s)', [nom, prénom])
else
if (Edit1.Text <> '') then
ADOTable1.Filter:= Format('(nom LIKE %s)', [nom])
else
ADOTable1.Filter:= Format('(prénom LIKE %s)', [prénom]);
ADOTable1.Filtered := Trim((Edit1.Text + edit2.Text))<>'';
except
abort;
end;
end;
و بعدها أكتب الكود التالي في حدث onEntrer  للمكون edit2
Edit2.OnChange:=edit1.OnChange;
الآن انتهينا بحمد الله من هذه السلسلة أتمنى أن تكون أفادتكم و ألقاكم في جديد الدروس و المقالات الحصرية فقط على مدونة تعلم دلفي و دمتم في رعاية الله
و السلام عليكم و رحمة الله تعالى و بركاته
جميع الحقوق محفوظة لــ تعلم دلفي بالعربية 2015 ©