بسم الله الرحمان الرحيم
السلام عليكم و رحمة الله تعالى و بركاته اليوم في
درس اليوم سنتابع سلسلة دروس " البحث في قواعد البيانات " و اليوم
سنتحدث في الجزء الثاني أيضا عن أهم طرق
البحث في قواعد البيانات و سنشرح الأكواد بالتفصيل و نبدأ على بركة الله :
البحث باستخدام المنهج Lookup
|
لا يقوم هذا المنهج بتغير مؤشر
الفأرة عند إيجاد القيمة المطلوبة بل يحتفظ بها و يمكن استدعائها متى دعت الحاجة
مثال : قم بإضافة المكونات التالية adotable1 / datasource1 /adoconnection1 /
dbgrid1/edit1 / button1 و بعدها قم بربط قاعدة البيانات كما شرحنا في
درس سابق و الآن قم بكتابة الكود التالي في حدث onclic للزر button1
var LookupResult : Variant;
begin
lookupResult :=
adotable1.Lookup('N°',strtoint(edit1.Text ),'nom;prénom');
if Not VarIsnull(
lookupResult) then
Showmessage(vartostr(lookupresult[0])
+ ' ' + vartostr(lookupresult[1]));
|
شرح الكود :
·
أولا قمنا بالتصريح
بالمتغير LookupResult من النوع Variant
·
و بعدها قمنا بجعل قيمة المتغير تساوي قيمة
البحث المطلوبة .
·
و في
هذا الكود يقوم المنهج Lookup بالبحث في adotable1 عن قيمة في حقل الرقم N° " الرقم هو حقل
من الجدول و هو الحقل n° "
·
و قيمة البحث هي النص
الموجودة في edit1
·
و قمنا بكتابة التابع strtoint لتحويل ما يوجد في الأداة من نص إلى رقم
·
أما الحقلان 'nom;prénom' فهما الحقلان اللذان سيظهر ما بداخلهما يعني
إذا كان هناك خمسة أشخاص في الجدول و قمنا بالبحث عن صاحب الرقم 3 فلن يظهر لنا
الرقم 3 بل سيظهر ما يقابله أي اسم و لقب الشخص في حالتنا هذه علمنا أنه يمكن تغير
الحقلين
· و بعدها استخدمنا الجملة الشرطية if not …then
·
و استخدمنا التابع VarIsnull لمعرفة هل المتحول يحتوي على قيمة أو لا
·
و إذا وجد القيمة ستظهر لنا في رسالة تحتوي
على nom و هو ذو القيمة 0 و prénom ذو القيمة 1
·
و استخدمنا أيضا التابع
vartostr الذي يحول القيمة Variant إلى نص
·
و أما ما يوجد بين هذين القيمتين nom و prénom في الرسالة هو فراغ + ' ' +
·
الآن هذا هو البرنامج
1- صورة النموذج الأول
أثناء التصميم
2-
صورة البرنامج أثناء
التنفيذ
·
و لكن ماذا لو كنت تريد
البحث عن الشخص عن طريق لقبه ...قم ببعض التغيرات على الكود السابق ليصبح هكذا
var LookupResult : Variant;
begin
lookupResult :=
adotable1.Lookup('nom',(edit1.Text ),'n°;prénom');
if Not VarIsnull(
lookupResult) then
Showmessage(vartostr(lookupresult[0])
+ ' ' + vartostr(lookupresult[1]));
|
قمنا بحذف التابع strtoint
لأنه يحول القيمة من نص إلى رقم و نحن في هذه المرة نريد البحث عن نص لذلك
استغنينا عنه و قمنا بتغير أسماء الحقول و في هذا المثال سنكتب لقب الشخص و سيظهر
لنا رقمه و اسمه في الرسالة كما تبين الصورة
·
يمكن البحث في حقلين من
نفس الجدول باستخدام الكود التالي :
var LookupResult : Variant;
begin
lookupResult :=
adotable1.Lookup('N°;prénom',VarArrayof
; ([strtoint(edit1.Text),Edit2.text]),'nom;prénom')
if Not VarIsnull(
lookupResult) then
Showmessage(vartostr(lookupresult[0])+
' ' + vartostr(lookupresult[1]));
|
و هذه هي صورة البرنامج بعد تطبيق الكود عليه و البحث
فيه :
ألقاكم في الجزء الثالث
من سلسلة " البحث في قواعد البيانات " في الدرس القادم بإذن الله
و السلام
عليكم و رحمة الله تعالى و بركاته
ليست هناك تعليقات