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

نسخة كاملة : التعامل مع التاريخ في firebird
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم
لم أفهم السؤال جيدا هل تود إدراج شرط في sql وتقارنه بقيمة في edit مثلا ؟
و عليكم السلام
عدرا على الاطالة
نعم اخي لؤي دلك المطلوب اريد اظافة شرط لل sql و المتعلق بالخبرة المحسوبة من اول استعلام AS experiance واقارنها بقيمة في edit يدخلها المستخدم - يعني اختيار العمال من جدول حيث يكون لديهم خبرة اكثر او تساوي القيمة الموجودة في edit -............. اني استعملت Params لكن لم اجد اجابة
السلام عليكم
هل من افكار يا اخوان؟
إقتباس :الخبرة تساوي 5 سنوات...
حذ تاريخ البوم ثم ضف له 5 سنوات واستخدم الناتج في الاستعلام
السلام عليكم

الخبرة تقصد تاريخ اليوم ناقص خمسة سنوات مضت ...فعلت دلك يا استادي عبد العزيز في المشاركة 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 مثلا هدا هو السؤال ؟؟
اقصد حساب التاريخ -5 خارج الاستعلام بدلفي في متغير مثلا dex
ثم بالاستعلام تضيف شرط  DATE_INSTA<dex
والنتبحة فقط من له اكثر من 5 سنوات خبرة
فكرة رائعة يا استادنا
جاري المحاولة ...
السلام عليكم
وجدت الحل و الحمد لله
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; 
شكرا لكم جميعا
الصفحات : 1 2