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

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



البحث في ال SQL عن طريق Delphi - كمال المجاني - 24-12-2012

السلام عليكم
أنشأت برنامجا في الدلفي على شكل مخدم زبون و اردت من خلاله البحث في قاعدة البيانات الموجودة في ال sql كما يلي
بعد الاتصال الناجح بقاعدة البيانات اود البحث عن تواريخ في قاعدة البيانات من خلال فورم في دلفي حيث انني اضع edit1 و edit2 الاول اضع فيه التاريخ الاول و الثاني اضع فيه التاريخ الثاني و dataset و ADOQuery1 و اتحصل على جميع التواريخ التي هي بين التارخ الاول و الثاني في dbgrid
فماهي الجملة الصحيحة التي أكتبها في (TStrings) الخاص ب ADOQuery1 كي يتم البحث
وكذلك في فورم اخراود بمجرد كتابة الحروف الاولى لاي اسم يظهر في ال dbgrid جميع الاسماء التي المكونة من تلك الحروف مثللا عند كتابة الحروف الاولى محم تظهر لي في dbgrid اسم محمد و محمود وعند تكملة الكتابة محمد تختفي كلمة محمود
عذرا على الاطالة
و بارك الله فيكم


البحث في ال SQL عن طريق Delphi - محمد الدرة - 24-12-2012

اولا قم بانشاء بارامترين (a,b)في مكون adoquery من نوع ftString ثم اكتب هذا الكود

كود :
adoquery1.SQL.Text:='select * from table where date between :a and :b '; adoquery1.Parameters.ParamByName('a').Value:=datetostr(d1.Date); adoquery1.Parameters.ParamByName('b').Value:=datetostr(d2.Date); adoquery1.open;

بالتوفيق


البحث في ال SQL عن طريق Delphi - you_per7 - 24-12-2012

السلام عليكم
استخدم مكون DateTimePicker بدلا من EDIT

كود :
procedure TForm1.Button7Click(Sender: TObject); begin with ADOQuery1 do begin Close; SQL.Clear; SQL.text :=('SELECT * FROM TABLE where DATE between #'+FormatDateTime('mm/dd/yyyy',DateTimePicker1.date)+'#'+'and #'+FormatDateTime('mm/dd/yyyy',DateTimePicker2.date)+'#') ; Open; end; end;



البحث في ال SQL عن طريق Delphi - كمال المجاني - 29-12-2012

لم تنجح معي لانه لم يتم تحويل DateTimePicker1.date الى string و بالتالي لا يتعرف عليه ال sql هل من طريقة اخرى


البحث في ال SQL عن طريق Delphi - tarek.inf - 29-12-2012

تحية طيبة
بما ان ADOQuery تملك الخاصية filter يمكن استعمالها مباشرة دون تعليمات sql
مثال
جدول يتكون من nom .date1
كود :
[align=left]select nom,date1 from table1[/align]
للفلترة حسب الاسم من الخاصية onChange ل edite1 نكتب الكود التالي
كود :
[align=left]procedure Form1.Edit1Change(Sender: TObject); begin IF edit1.GetTextLen<> 0 then begin ADOQuery1.Filter:='nom='''+Edit1.Text+'*'''; ADOQuery1.Filtered:=true; end else ADOQuery1.Filtered:=false; end;[/align]

للفلترة بين تاريخين
كود :
[align=left]procedure Tform1.Button1Click(Sender: TObject); begin ADOQuery1.Filter := '(Date1>='+QuotedStr(DateToStr(DateTimePicker1.Date))+') and (Date1<='+QuotedStr(DateToStr(DateTimePicker2.Date))+')'; end;[/align]



البحث في ال SQL عن طريق Delphi - كمال المجاني - 29-12-2012

حفظك الله و بارك فيك و في أهلك اخي tarek.inf شكرا على الاهتمام سأجرب و سأعلمك بالنتيجة

للتنبيه يجب اضافة للفلترة بين تاريخين في اخر الكود قبل ; end مايلي
ADOQuery1.Filtered:=true;
حتى تصبح النتيجة تامة و صحيحة
بارك الله فيكم ونفعكم و نفع الناس بعلمكم الى كل من
محمد الدرة
you_per7
tarek.inf


البحث في ال SQL عن طريق Delphi - makhlouf - 30-12-2012

كمال المجاني كتب :لم تنجح معي لانه لم يتم تحويل DateTimePicker1.date الى string و بالتالي لا يتعرف عليه ال sql هل من طريقة اخرى

أولا الحمد لله الذي وفقك للحل الصحيح أما فيما يخص تحويل التاريخ الى سترينغ فيمكن اضافة الامر datetostr
datetostr(DateTimePicker1.Date);
كما هو موضح في هذا الاستعلام من مشاركة الأخ "you_per7 "
procedure TForm1.Button7Click(Sender: TObjec
t);
begin

with ADOQuery1 do begin
Close;
SQL.Clear;
SQL.text :=('SELECT * FROM TABLE where DATE between #'+datetostr(FormatDateTime('mm/dd/yyyy',DateTimePicker1.date))+'#'+'and #'+FormatDateTime('mm/dd/yyyy',DateTimePicker2.date)+'#') ;
Open;

end;



البحث في ال SQL عن طريق Delphi - كمال المجاني - 30-12-2012

بارك الله فيك و حفظك من كل مكروه شكرا على الاهتمام اخي makhlouf فيما يخص الكود الذي اعطاني اياه الاخ you_per7 و الذي اعطيتنيه انت الفرق بينهما هو في datetostr سأجربه
ولكم جزيل الشكر


البحث في ال SQL عن طريق Delphi - dliouahb - 03-05-2014

بارك الله فيكم جميعا ...