delphi4arab منتديات دلفي للعرب

نسخة كاملة : إستعلام بين تاريخين باستخدام مكونين datetimepiker
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
سلام الله عليكم

وضعت كائنين من datetimepiker واحد لأختيار تاريخ البداية والثاني تاريخ النهاية كمايلي Smile:

PHP كود :
D1,D2:tdatetime;  
begin
D1
:=DateTimePicker1.Date;
D2:=DateTimePicker2.Date;
    if 
DateTimePicker1.Date > DateTimePicker2.Date then
    begin
  showmessage
('Veuillez insérer une date inferieur')
   
end
   
else

with adoquery3 do
 
begin
   
   Close
;
   
SQL.Clear;
   
SQL.Add('select SUBNO');
   
SQL.Add('FROM IVR1');
   
SQL.Add('where JOURS');
   
SQL.Add('between :D1 and :D2');
   
open; 

المشكلة أن عند التطبيق و إختيار التاريخين من datetimepiker 1 +2 لا شيئ يعرض على DBGRID و كأن المتغيرات داخل الإستعلام لا تأخذ بعين الإعتبار ما أدرج لها في datetimepiker1+2 Sad

شكرا
وعليكم السلام و رحمة الله

لأنك لم تحدد قيم البارامتر
كود :
if DateTimePicker1.Date > DateTimePicker2.Date then begin showmessage('Veuillez insérer une date inferieur') end else with adoquery3 do begin Close; SQL.Clear; SQL.Add('select SUBNO'); SQL.Add('FROM IVR1'); SQL.Add('where JOURS'); SQL.Add('between :D1 and :D2'); Parameters.ParamByName('d1').DataType:=ftDate; Parameters.ParamByName('d1').Value:=DateTimePicker1.Date; Parameters.ParamByName('d2').DataType:=ftDate; Parameters.ParamByName('d2').Value:=DateTimePicker2.Date; open;
بالتوفيق

وعليكم السلام ورحمة الله

كما يمكن استخدام الطرق القديمة مباشرة دون Parameters.ParamByName بشيئ مثل
كود :
with adoquery3 do begin Close; SQL.Clear; SQL.Add('SELECT SUBNO FROM IVR1 WHERE JOURS BETWEEN '); SQL.Add(Quotedstr(DateToStr(D1.Date))+' AND '+Quotedstr(DateToStr(D2.Date))); open;

ان كنت تخاف حصول خطا ما بشان التاريخ يمكن تعديله بشيئ مثل
كود :
with adoquery3 do begin Close; SQL.Clear; SQL.Add('SELECT SUBNO FROM IVR1 WHERE JOURS BETWEEN '); SQL.Add(Quotedstr(FormatDateTime('MM/DD/YY',D1.Date))+' AND '+Quotedstr(FormatDateTime('MM/DD/YY',D2.Date))); open;
ولا تنسى قبله اضافة ما يلي
كود :
DateSeparator := '/'; ShortDateFormat:='DD/MM/YYYY';