delphi4arab منتديات دلفي للعرب
التعامل مع التاريخ في firebird - نسخة قابلة للطباعة

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

الصفحات: 1 2


RE: التعامل مع التاريخ في firebird - لؤي - 27-07-2017

السلام عليكم
لم أفهم السؤال جيدا هل تود إدراج شرط في sql وتقارنه بقيمة في edit مثلا ؟


RE: التعامل مع التاريخ في firebird - bassem_43 - 30-07-2017

و عليكم السلام
عدرا على الاطالة
نعم اخي لؤي دلك المطلوب اريد اظافة شرط لل sql و المتعلق بالخبرة المحسوبة من اول استعلام AS experiance واقارنها بقيمة في edit يدخلها المستخدم - يعني اختيار العمال من جدول حيث يكون لديهم خبرة اكثر او تساوي القيمة الموجودة في edit -............. اني استعملت Params لكن لم اجد اجابة


RE: التعامل مع التاريخ في firebird - bassem_43 - 03-08-2017

السلام عليكم
هل من افكار يا اخوان؟


RE: التعامل مع التاريخ في firebird - محمد عبد العزيز - 03-08-2017

إقتباس :الخبرة تساوي 5 سنوات...
حذ تاريخ البوم ثم ضف له 5 سنوات واستخدم الناتج في الاستعلام


RE: التعامل مع التاريخ في firebird - bassem_43 - 06-08-2017

السلام عليكم

الخبرة تقصد تاريخ اليوم ناقص خمسة سنوات مضت ...فعلت دلك يا استادي عبد العزيز في المشاركة 10 بهدا الكود

PHP كود :
with DataModule1.filtageExper do
 
   begin
      Close
;
 
     SQL.Clear;
 
    SQL.Add('select TRUNC ( (CAST(CURRENT_DATE AS DATE) - CAST ( DATE_INSTA AS DATE)),0) AS experiance,NUM_PERS,NOM,PRENOM,DATE_NAIS,ADRESSE,SEX,DATE_INSTA,UNITE,GRADE,NUM_CORP,NOM_COR,NUM_GRA,NOM_GRADE,APP_COR,NUM_SER,NOM_SERV,NOM_UNI,NUM_UNI,APPER_SER');
 
    SQL.Add(' FROM PERSONEL,CORPS,GRADES,SERVICE,UNITE');
 
    SQL.Add(' WHERE (PERSONEL.UNITE=UNITE.NUM_UNI) AND (PERSONEL.GRADE=GRADES.NUM_GRA) AND (SERVICE.NUM_SER=UNITE.APPER_SER) AND (CORPS.NUM_CORP=GRADES.APP_COR) ');

 
     Open; 
ناتج هدا الاستعلام  يعطيني جدول يحتوي على حقل اسمه
PHP كود :
experiance يمثل الخبرة محسوبة بالايام
كيف يمكنني استعمال حقل الخبرة experiance في استعلام اخر للحصول على العمال الدين لديهم خبرة مثلا 5 سنوات تكون موجودة في حقل نصي edittext مثلا هدا هو السؤال ؟؟ 

ناتج هدا الاستعلام يعطيني جدول يحتوي على حقل اسمه experiance يمثل الخبرة محسوبة بالايام
كيف يمكنني استعمال حقل الخبرة experiance في استعلام اخر للحصول على العمال الدين لديهم خبرة مثلا 5 سنوات تكون موجودة في حقل نصي edittext مثلا هدا هو السؤال ؟؟


RE: التعامل مع التاريخ في firebird - محمد عبد العزيز - 06-08-2017

اقصد حساب التاريخ -5 خارج الاستعلام بدلفي في متغير مثلا dex
ثم بالاستعلام تضيف شرط  DATE_INSTA<dex
والنتبحة فقط من له اكثر من 5 سنوات خبرة



RE: التعامل مع التاريخ في firebird - bassem_43 - 06-08-2017

فكرة رائعة يا استادنا
جاري المحاولة ...


RE: التعامل مع التاريخ في firebird - bassem_43 - 17-08-2017

السلام عليكم
وجدت الحل و الحمد لله
PHP كود :
Var
D1 : TdateTime;
x:Integer; 
PHP كود :
x:=StrToInt(edt1.Text)  ;
 
    D1:=IncYear(date,-x);
with DataModule1.filtageExper do
 
   begin
      Close
;
 
     SQL.Clear;
 
    SQL.Add('select NUM_PERS,NOM,PRENOM,DATE_NAIS,ADRESSE,SEX,DATE_INSTA,UNITE,GRADE,NUM_CORP,NOM_COR,NUM_GRA,NOM_GRADE,APP_COR,NUM_SER,NOM_SERV,NOM_UNI,NUM_UNI,APPER_SER');
 
    SQL.Add(' FROM PERSONEL,CORPS,GRADES,SERVICE,UNITE');
 
    SQL.Add(' WHERE (PERSONEL.UNITE=UNITE.NUM_UNI) AND (PERSONEL.GRADE=GRADES.NUM_GRA) AND (SERVICE.NUM_SER=UNITE.APPER_SER) AND (CORPS.NUM_CORP=GRADES.APP_COR) AND (DATE_INSTA < :F1)');

 
      Params.ParamByName('F1').Value:= D1;

 
     Open;

 
   end; 
شكرا لكم جميعا