ورود

View Full Version : دستور اسکیوال



لاله86
سه شنبه 31 اردیبهشت 1387, 12:59 عصر
با سلام من برای ای دی او کوری دستورات اسکیوال زیر رو نوشتم تا به این وسیله کوری من رکوردهایی رو برگردونه که در شرط صدق کنند. هر رکورد دارای دو فیلد به نام از و تا هست مثلا رکورد اول فیلد از :12 و فیلد تا: 16 ، رکورد دوم فیلد از : 20 و فیلد تا: 23 . حالا وقتی من از را 12 وارد کردم و تا را 23 ، میخوام این دو رکورد برگردانده شود .ولی کوری من فقط حالت تساوی را حساب میکند و فقط میتواند یه رکورد برگرداند مثلا در مثال بالا کوری وقتی جواب میدهد که من از را 12 و تا را 16 وارد کنم. کدی که من نوشتم به صورت زیر است :



mor.Active:=false;
mor.SQL.Clear ;
mor.SQL.Add('SELECT t1.name, t1, t2.*');
mor.SQL.Add('FROM t1 INNER JOIN t2 ON t1.cod = t2.cod');
mor.SQL.Add('where t2.cod = :p3');
mor.SQL.Add('and t2.azt <= :p4');
mor.SQL.Add('and t2.tat >= :p5');
mor.Parameters.ParamByName('p3').Value :=e20.Text ;
mor.Parameters.ParamByName('p4').Value :=e21.Text ;
mor.Parameters.ParamByName('p5').Value := e22.Text;
mor.Active:=true;


mor.Open

اگه ممکنه راهنمایی کنید:عصبانی++:

delphiprog3000
پنج شنبه 02 خرداد 1387, 20:28 عصر
سلام.

دوست عزیز اگر قصد شما پیدا کردن اعداد مابین است. میتوانید از دستور Beetwen اسکیوال

استفاده کنید. و به Query پاس دهید.

اصغر (پآچ)
جمعه 03 خرداد 1387, 16:24 عصر
سلام
شما می تونی به این روش Query خودت رو بنویسی



Select t1.name, t1.*, t2.*
Form t1 inner join t2 on t1.Cod=t2.Cod and t2.cod = :p3
where t2.azt <= :p4 or t2.tat >= :p5



موفق باشید اگه بازم کمک خواستی در خدمتم

Arghavan_Reza
شنبه 04 خرداد 1387, 20:06 عصر
اگر منظور شما را درست فهمیده باشم، متن را به شکل زیر اصلاح کن مشکل حل میشه:


...
mor.SQL.Add('and t2.azt >= :p4');
mor.SQL.Add('and t2.tat <= :p5');
...

موفق باشید.

SYNDROME
شنبه 04 خرداد 1387, 20:28 عصر
mor.Active:=false;
mor.SQL.Clear ;
mor.SQL.Add('SELECT t1.name, t1, t2.*');
mor.SQL.Add('FROM t1 INNER JOIN t2 ON t1.cod = t2.cod');
mor.SQL.Add('where t2.cod = :p3');
mor.SQL.Add('and t2.azt <= :p4');
mor.SQL.Add('and t2.tat >= :p5');
mor.Parameters.ParamByName('p3').Value :=e20.Text ;
mor.Parameters.ParamByName('p4').Value :=e21.Text ;
mor.Parameters.ParamByName('p5').Value := e22.Text;
mor.Active:=true;



mor.Open





اگه ممکنه راهنمایی کنید:عصبانی++:


فکر کنم همین دستور درست است.

به P4 عدد بزرگ و به P5 عدد کوچک را پاس کنید.
موفق باشید