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=10184)



اريد اضهار نتائج محصورة بين تاريخين في الدلفي ? - hamza101110 - 03-05-2019

[صورة: 155688612736911.png]
كما ترون فيالصورة عندي جدول اسمه info 
اريد فلترته و اضهار جميع التسجيلات المحصورة بين التاريخين الذين سادخلهما في edit1. edit2 
طبعا كود sql يكون كما يلي 
كود :
 select * from info where date between 01/01/2019 and 01/01/2020
لكن كيف اجعل الكويري تاخذ القيم التي ادخلتهما في ال edit1. edit2
وشكرا


RE: اريد اضهار نتائج محصورة بين تاريخين في الدلفي ? - أبو معاذ - 03-05-2019

السلام عليكم ،
باستعمال الباراميتر في SQL يمكن فعل ذلك ببساطة .


PHP كود :
Select *
FROM MyTable
Where MyDate BETWEEN 
:D1 and :D2 



يعد ذلك نقوم بإمرار قيمة الباراميتر كالآتي :



PHP كود :
MyQuery1.parambyname('D1').AsDate := strtodate(edit1.text) ;
MyQuery1.parambyname('D2').AsDate := strtodate(edit2.text) ; 



RE: اريد اضهار نتائج محصورة بين تاريخين في الدلفي ? - hamza101110 - 03-05-2019

اخي
قيمة الباراميتر اي الكود الذي كتبته
هل اضعه في الزر show
اضعه كماهو مكتوب هكذا MyQuery1.parambyname('D1').AsDate := strtodate(edit1.text) ;
MyQuery1.parambyname('D2').AsDate := strtodate(edit2.text) ;
لانه اعطاني خطء
انا حاطط adoquery3 وضعت فيها الاستعلام
ولما رحت للزر ووضعت قيمة الباراميتر اعطاني خطء
انا حاليا مبتدء في الدلفي حاول تروح معياي خطورة بخطوة
وشكراااااا

[img][صورة: 155689703963561.png][/img]

Undecided
[img][صورة: 155689708128681.png][/img]
Sad
وضعت الاستعلام 
ووصعت الكود القيمة في الزر 
ويضهرلي خطء


RE: اريد اضهار نتائج محصورة بين تاريخين في الدلفي ? - S.FATEH - 03-05-2019

السلام عليكم

PHP كود :
BETWEEN :D1 and :D2 
و ليس
PHP كود :
BETWEEN =:D1 and :D2 



RE: اريد اضهار نتائج محصورة بين تاريخين في الدلفي ? - أبو معاذ - 03-05-2019

أنت لم تخبرنا بأنك تستعمل ال ADO Cool 

في حالتك مع ال ADO :

PHP كود :
ADOQuery1.Parameters.ParamByName('D1').Value  := strtodate(edit1.text) ;
ADOQuery1.Parameters.ParamByName('D1').Value  := strtodate(edit1.text) ; 

فقط لا تنس إغلاق ADOQuery1  قبل تمرير الباراميتر .

فيصبح الكود كالآتي :
PHP كود :
ADOQuery1.Close ;
ADOQuery1.Parameters.ParamByName('D1').Value  := strtodate(edit1.text) ;
ADOQuery1.Parameters.ParamByName('D1').Value  := strtodate(edit1.text) ;
ADOQuery1.Open ; 

ملاحظة فقط :
لماذا لا تستعمل  مكونات datetimepicker  عوضا عن ال Edit؟


RE: اريد اضهار نتائج محصورة بين تاريخين في الدلفي ? - hamza101110 - 03-05-2019

شكرااا لكم كثييرااا اشتغل الكود بنجاح

لو استعمل data time picker . هل يتغير الكود ??

لو استعمل datimepicker عوض edit 
هذا يعني انو نغير كود القيمة و الsql ??


RE: اريد اضهار نتائج محصورة بين تاريخين في الدلفي ? - أبو معاذ - 04-05-2019

لا،
كود ال sql يبقى كما هو ،
فقط قيمة الباراميتر تتغر ،
فعوضا ان تكتب
strtodate(edit1.text) 
تكتب 
Datetimepicker1.date

PHP كود :
ADOQuery1.Close ;
ADOQuery1.Parameters.ParamByName('D1').Value  := Datetimepicker1.date ;
ADOQuery1.Parameters.ParamByName('D1').Value  := Datetimepicker2.date ;
ADOQuery1.Open ;