delphi4arab منتديات دلفي للعرب
كيف أعمل خاصية البحث - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف أعمل خاصية البحث (/showthread.php?tid=5929)



كيف أعمل خاصية البحث - أحمد 13 - 08-02-2014

السلام عليكم

لدي قاعدة بيانات فيها عدة جداول من بينها جدول سميته bien و في الجدول هذا أود البحث بواسطة رقم bien و الذي سميته NumBien
لقد جربت البحث بواسطة الفلترة و اليكم الكود و نتجية خاطئة اي لا يعمل
كود :
IF sedit1.GetTextLen<> 0 then begin dm.ADOQuery1.Filter:='NumBien='''+sEdit1.Text+'*'''; dm.ADOQuery1.Filtered:=true; end else begin dm.ADOQuery1.Filtered:=false; end;
و لقد جربت البحث بطريقة ثانية أخرى و تظهر لي رسائل خطأ عديدة و اليكم الكود الثاني :
كود :
dm.ADOQuery1.Close ; dm.ADOQuery1.Parameters.ParamByName('c').value:=sEdit1.text; dm.ADOQuery1.Open; if dm.ADOQuery1.RecordCount=0 then showmessage('Ne Exist Pas') else showmessage ('Exist') ;
و في قسم الخصائص و بالضبط في SQL وضعت الامر التالي :
كود :
select*from Tbien where NumBien.code=:c
لم أفهم مصدر الخطأ ، و جزاكم الله خيرا لما تقدمونه خدمة للأعضاء .


كيف أعمل خاصية البحث - أحمد 13 - 08-02-2014

الحمد لله لقد وجدت الحل بعد جهد هههه و هذا لحل الصحيح : select*from Bien where Bien.NumBien=:c
بقي لي عائق : كيف اقوم البحث بخاصية الفلترة ؟ اي مثل الخاصية التي في الجوال مجرد اكتب الرقم الاول تظهر لي بقية الارقام التي تشابهه ؟
و جزاكم الله خيرا


كيف أعمل خاصية البحث - makhlouf - 09-02-2014

السلام عليكم و رحمة الله تعالى و بركاته
أخي في الحدث on change الخاص ب edit ضع كود الفلترة
dm.ADOQuery1.Filter:='NumBien='''+sEdit1.Text+'*''';
dm.ADOQuery1.Filtered:=true
بالتوفيق


كيف أعمل خاصية البحث - أحمد 13 - 09-02-2014

بارك الله فيك يا أستاذي الفاضل على التجاوب
و قد جربت الكود و للأسف لم يعمل :confused:
أتمنى ان نجد الحل و نفع الله بك اخاه ،،


كيف أعمل خاصية البحث - makhlouf - 10-02-2014

أخي تأكد من نوع الحقل هل هو نص أم رقم و إذا كان رقم يجب أن تستهدم الدالة strtoint مثل

dm.ADOQuery1.Filter:='NumBien='''+strtoint(sEdit1.Text)+'*'' ';
dm.ADOQuery1.Filtered:=true;

بالتوفيق


كيف أعمل خاصية البحث - أحمد 13 - 10-02-2014

makhlouf كتب :أخي تأكد من نوع الحقل هل هو نص أم رقم و إذا كان رقم يجب أن تستهدم الدالة strtoint مثل

dm.ADOQuery1.Filter:='NumBien='''+strtoint(sEdit1.Text)+'*'' ';
dm.ADOQuery1.Filtered:=true;

بالتوفيق

بارك الله فيك أخي ، جربت الكود و لم يقبل التنفيد و لكن بعد اجتهاد متواضع مني طبقت التنفيد التالي وقد نجح معي ولكن تبقي مشكل

السهم لا يأتي في مكون DBGrid يعني لا ينزل يبقى في الاول للتوضيح اكثر سأعطيك مثال

مثال عندي ارقام من 1 الى 10 لو اقوم بالبحث عن صاحب الرقم 66 تظهر رسالة انه غير مسجل

و عندما ابحث مثلا عن رقم 5 او 9 او 4 يقول لي مسجل و لكن السهم لا ينزل في DBGrid

علما أني ****ه ينزل ،، و حفظك ربي من كل شر لما تقدمه لي من عون


كود :
dm.ADOQuery1.Close ; dm.ADOQuery1.Parameters.ParamByName('c').value:=sEdit1.text; dm.ADOQuery1.Open; if dm.ADOQuery1.RecordCount=0 then showmessage('Ne Exist Pas') else showmessage ('Exist') ;



كيف أعمل خاصية البحث - makhlouf - 11-02-2014

أخي ألق نظرة هنا لعلك تجد مبتغاك
http://www.delphi4arab.net/forum/showthread.php?tid=3912
بالتوفيق


كيف أعمل خاصية البحث - makhlouf - 11-02-2014

أخي حاول تجريب هذا الكود
procedure tform1.edit1change(sender:tobject);
begin
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from bien where numbien like '+qoutedstr('%'+edit1.text+'%');
adoquery1.open;
end;

بالتوفيق


كيف أعمل خاصية البحث - أحمد 13 - 11-02-2014

بارك الله فيك أخي العزيز و جزاك الله خيرا ، نجحت بفضل الله و بفضلك ثانيا ، و كان أيضا ناقصني داتا سورس اخر خاص بالبحث

جزاكم الله خير اخي و جد سعيد بلإستفادة من علمك :d

و اعتذر على أي ازعاج فأخوك مبتدأ و مقبل على التخرج و السلام عليكم ،،


كيف أعمل خاصية البحث - makhlouf - 12-02-2014

و عليكم السلامورحمة الله تعالى و بركاته
و فيك بارك الله يا أخي و عفوا و نحن في استعداد تام لتقديم العون إن إستطعنا و نحن هنا لنتعلم و لننفع و ننتفع، وفقك الله في دراستك و حياتك يا أخي.
بالتوفيق