PDA

View Full Version : چگونگی انجام عملیات دو فیلتر



nassim_20
یک شنبه 03 شهریور 1387, 11:36 صبح
شاید توی عنوان نتونستم خوب منظورم رو برسونم
سوالم اینه که وقتی دو فیلتر اعمال میکنیم آیا زمانیکه فیلتر اول اعمال شده فیلتر دوم روی فیلتر اولی اعمال میشه یا اینکه اولی از بین میره و دومی ظاهر میشه
بهتره اینجوری بپرسم
من یه بانک دارم می خوام اول با استفاده از TEXTSEARCH جستجو کند و از بین یافته های اون با استفاده از like جستجو کنم ایا این امکان پذیر است
در ضمن سرعت افزایش می یابد نسبت به زمانیکه تنها like استفاده کنم

Hsimple11
یک شنبه 03 شهریور 1387, 12:40 عصر
بله فیلتر اول از بین میره چون شما مجبورید برای اینکه فیلتر دوم شما عمل کند دوباره Filtered را True کنید. میتونید این دو کار را همزمان انجام دهید. یا یک جدول موقت بسازید و داده های آن را Select کنید.

nassim_20
یک شنبه 03 شهریور 1387, 13:59 عصر
بذارید بهتر توضیح بدم
من می خواهم با استفاده از خاصیت fulltext جستجو کنم اما زمانیکه دو کلمه یا بیشتر را می زنم کلمات را جدا جدا پیدا می کنه مثلا اگر کلمه "امام صادق" رو بزنم اگر تنها فیلدی کلمه "امام" و در جای دیگر "صادق" رو داشته باشد جز یافته هایش می اورد پس نمیشه از TEXTSEARCH استفاده کرد اما با like میشه همچین کاری کرد منتها باسرعت بسیار پایین و کسل کننده
حالا من میخوام اول با TEXTSEARCH جستجو کنم و از یافته هایم با استفاده از like اونهایی مطابق با خواسته من هست رو جدا کنم
من کد رو به صورت زیر نوشتم


'TEXTSEARCH ( '+ QuotedStr(ComboBox1.Text)+' IN "Matn" ) and' + QuotedStr( '%'+(edit1.text)+'%' )
DBISAMTable1.SQL.Text := 'select * from Matn where '+s;
DBISAMTable1.ExecSQL;


به نظر شما این راه منطقیه؟
راه دیگه ای پیشنهاد دارید؟
سرعت برایم خیلی مهمه