PDA

View Full Version : مشکل با query نیاز فوری



asabbas
چهارشنبه 17 مرداد 1386, 07:51 صبح
سلام به همه .دوستان من تازه از table وارد query شدم ولی با where زدن مشکل دارم.
table من فیلدهای a,b,c,d,e را دارد که a,b,c از نوع number هستند d,e از نوع رشته و نیز 5 تا combobox دارم که میخوام مقادیر فیلدها را بر اساس انها جستجو کنم.برای combobox های مربوط به فیلدهای number جواب میده ولی هر گاه دنبال یک فیلد رشته با combobox
میگردم خطای token وبعد مقدار رشته رو میده.کد زیر را مینویسم:
Query1.SQL.Add(' where d='combobox7.text' and a>='+combobox4.text+' and b>='+combobox5.text+' and c>='+combobox6.text+' and a<='+combobox1.text+' and b<='+combobox2.text+' and c<='+combobox3.text+'');
کلا مقدار رشته رو برای یک فبلد رشته چطور پیدا کنم. لطفا با مثال برام توضیح بدید .بانکم paradox .تشکر :افسرده:

Batman
چهارشنبه 17 مرداد 1386, 08:05 صبح
با سلام
دوست عزیز این رو چک برای بقیه حالات ها هم همینطوری


Where (d=:d) (a>=:a) and (b>=:b)
query1.parambyname('d').asstring:=combobox7.text;
query1.parambyname('a').asstring:=combobox4.text;
query1.parambyname('b').asstring:=combobox5.text

استفاده از ":" به خاطر دریافت مقدار از ورودی هستش
موفق باشید

asabbas
چهارشنبه 17 مرداد 1386, 09:19 صبح
با سلام
دوست عزیز این رو چک برای بقیه حالات ها هم همینطوری


Where (d=:d) (a>=:a) and (b>=:b)
query1.parambyname('d').asstring:=combobox7.text;
query1.parambyname('a').asstring:=combobox4.text;
query1.parambyname('b').asstring:=combobox5.text

استفاده از ":" به خاطر دریافت مقدار از ورودی هستش
موفق باشید

خیلی مخلصیم بهم خط دادی.اما برای مورد اول( d:=d) عمل کرد و وقتی مورد بعدی را and کردم خطای( not fount parame (a نمی دونم فاصله خاصی باید بین پرانتزها باشه.من بعد از where پارامتر ها را تعریف میکنم.؟؟؟//؟

Batman
چهارشنبه 17 مرداد 1386, 09:36 صبح
با سلام به این شکل بنویس


Where (d=:d) and (a>=:a) and (b>=:b)
query1.parambyname('d').asstring:=combobox7.text;
query1.parambyname('a').asstring:=combobox4.text;
query1.parambyname('b').asstring:=combobox5.text

موفق باشید

asabbas
چهارشنبه 17 مرداد 1386, 10:14 صبح
با سلام به این شکل بنویس

موفق باشید
تشکر فراوان .منمون از این که با حوصله به من جواب دادی .:قلب::تشویق:

asabbas
چهارشنبه 17 مرداد 1386, 10:38 صبح
تشکر فراوان .منمون از این که با حوصله به من جواب دادی .:قلب::تشویق:
سوال :دست اخر اگه بخوام دوتا فیلد که با هم and هستند رابا دوتا فیلد که با هم andهستند
را باهم and یا or کنم درسته:
where (( a=:a)and(b=:b))or((c=:c)And(d =:)
یعنی دو تا and را تا در دو تا پرانتز دیگه وبعد or کنم.؟؟؟؟؟؟؟؟؟؟؟؟منونم

Batman
چهارشنبه 17 مرداد 1386, 10:41 صبح
با سلام
قبل از جواب اینکه عنوان تاپیکت درست نبود استفاده از کلماتی مثل نیاز فوری ممنوع هستش و در ضمن به جای ایجاد تاپیک اضافه استفاده از دکمه تشکر
حالا جواب
ببین چنین چیزی که شما گفتی امکانش نیست یا and و یا or با هم نمیشه
موفق باشید

asabbas
چهارشنبه 17 مرداد 1386, 13:59 عصر
با سلام
قبل از جواب اینکه عنوان تاپیکت درست نبود استفاده از کلماتی مثل نیاز فوری ممنوع هستش و در ضمن به جای ایجاد تاپیک اضافه استفاده از دکمه تشکر
حالا جواب
ببین چنین چیزی که شما گفتی امکانش نیست یا and و یا or با هم نمیشه
موفق باشید


سلام .ببخشید من تازه تو سایت عضوشدم بعضی از قوانین رو نمیدونم .
در مورد سوالم منظورم این که در یک جدول که 4تا فیلد داره a,b,c,d میخوام دنبال رکوردهایی که فیلد a و b مطابق combobox 1,combobox2 ونیز فیلد c مطابق combobox3یا فیلد d مطابق combobox 4
فکر کنم درست منظورم رو نرسوندم...تشکر ذارم منتظرم؟؟؟؟؟؟؟؟//

Batman
چهارشنبه 17 مرداد 1386, 20:28 عصر
با سلام
ببین دوست عزیز همونجوری که تو پست قبلی گفتم sql برای پرانتزها اولویت گذاری نداره
پس یا and و یا or
موفق باشید

asabbas
پنج شنبه 18 مرداد 1386, 08:35 صبح
با سلام
ببین دوست عزیز همونجوری که تو پست قبلی گفتم sql برای پرانتزها اولویت گذاری نداره
پس یا and و یا or
موفق باشید

سلام .اقا پس راهش چیه ما چند تا رکورد را از داخل بانک با and کردن چندتا فیلد واز بین اونا تعدادی که دارای فیلد c: combobox3یا d:comvbobox4
را جدا کرد برا گزارش . راه حلی ند اره مثلا دوتا query یا دو تا where یا از یک query دوباره query?????اگه راه حلی داره بنویسید منون میشم اگه جواب بدید اقای batman.

SYNDROME
پنج شنبه 18 مرداد 1386, 13:05 عصر
با سلام

سلام .اقا پس راهش چیه ما چند تا رکورد را از داخل بانک با and کردن چندتا فیلد واز بین اونا تعدادی که دارای فیلد c: combobox3یا d:comvbobox4
را جدا کرد برا گزارش . راه حلی ند اره مثلا دوتا query یا دو تا where یا از یک query دوباره query?????اگه راه حلی داره بنویسید.منونم
می توانی با یک Unionمشکل را حل کنی.


Select *
From Tbl_Test
Where a=1 And b=2
Union
Select *
From Tbl_Test
Where c=3

موفق باشید