PDA

View Full Version : مشکل در جستجو



Delphi7_love
دوشنبه 05 مهر 1389, 23:15 عصر
میخوام از چند تا and و چندتا or در جستجو استفاده کنم و با and ها مشکل ندارم و درست کار میکنه ولی زمانی که از or استفاده میکنم به or که میرسه بقیه قسمتها رو بیخیال میشه و فقط همون or رو مورد سنجش قرار میده
یه نمونه در زیر گذاشتم نمیدونم کجای کارم مشکل داره لطفا رانمایی نمایید

adq.SQL.Clear;
Adq.SQL.Add('select * from s_melk where date='+quotedstr(e1.Text)+' and noe_melk=e2.Text or noe_melk=e3.Text');
adq.Open;

Naruto
سه شنبه 06 مهر 1389, 00:41 صبح
سلام.

کد فعلی شما در واقع به این صورت هست:


( Adq.SQL.Add('select * from s_melk where date= noe_melk=e3.Text')کد رو به شکل زیر تغییر بدید.



Adq.SQL.Add('select * from s_melk where date='+quotedstr(e1.Text)+' and ((noe_melk=e2.Text) or (noe_melk=e3.Text')));

Delphi7_love
سه شنبه 06 مهر 1389, 12:12 عصر
ممنون این مشکل حل شد حالا یه مشکل دیگه دارم
چطور میشه یه فیلد که رشته ای هست رو در یک بازه مشخص مورد جستجو قرار داد ، مثل فیلد های عددی مثلا به بگیم به شرطی که بین 1 و 100 باشه
در حقیقت یه فیلد از نوع رشته دارم که مقادیر پولی داخلش ذخیره می کنم و هنگام جستجو میخوام بگم به شرطی که این فیلد بین دو بازه باشه

Naruto
سه شنبه 06 مهر 1389, 13:37 عصر
میتونید از عملگر BETWEEN استفاده کنید.


در حقیقت یه فیلد از نوع رشته دارم که مقادیر پولی...
چرا رشته؟

Delphi7_love
سه شنبه 06 مهر 1389, 16:11 عصر
میتونید از عملگر BETWEEN استفاده کنید.

اگه ممکنه مثال زیرو با BETWEEN بنویسید هرکار کردم نتونستم استفاده کنم
ممنون


adq.SQL.Clear;
Adq.SQL.Add('select * from s_melk where s_vam>='+quotedstr(e14.Text)+' and s_vam<='+quotedstr(e15.Text)+' order by s_tar desc');
adq.Open;



چرا رشته؟
به خاطر اینکه بتونم اعداد بزرگتر رو ذخیره کنم

Naruto
سه شنبه 06 مهر 1389, 23:05 عصر
سلام.
من جای شما بودم از انواع Decimal یا Numeric استفاده میکردم.

به هرحال شما میتونید از تابع Cast برای تبدیل نوع رشته ای به عددی استفاده کنید و کوئری بگیرید و تاپیک زیر راهنمای خوبی برای این کار هست:


(http://barnamenevis.org/forum/showthread.php?t=179839)http://barnamenevis.org/forum/showthread.php?t=179839

موفق باشید.