- مرسلة بواسطة CentreInfo
- في
البحث في قواعد البيانات في الدلفي - الجزء الثاني -
البحث في قواعد البيانات في الدلفي - الجزء الثاني -
بسم الله الرحمان الرحيم
السلام عليكم و رحمة الله تعالى و بركاته
.درس اليوم هو الجزء الثاني من سلسلة البحث في قواعد البيانات و هذا هو الجزء
الأخير من هذه السلسلة و في هذا الدرس سنتعرف على أفضل طريقة للبحث في قواعد
البيانات و هي الفلترة هذا مصلح باللغة الإنجليزية و معناه باللغة العربية التصفية
أو الترشيح حيث أننا نرى هذا النوع من البحث في كل مكان " في محركات البحث في
الهواتف النقالة " لذلك اخترت هذا النوع كأفضل طريقة للبحث و نبدأ على بركة
الله
عملية الفرز في الدلفي
|
يجب أن تقوم بما كنا نفعله دائما ألا و هو ربط قاعدة
البيانات أكسس مع الدلفي بالإضافة إلى : إضافة مكون 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;
|
الآن انتهينا بحمد الله من هذه السلسلة أتمنى أن تكون
أفادتكم و ألقاكم في جديد الدروس و المقالات الحصرية فقط على مدونة تعلم دلفي و
دمتم في رعاية الله
منقول من مدونة http://www.learndelphi-ar.com/



تعليقات
Google+
To turn on Google+ comments:
معرفة المزيد