ورود

View Full Version : مشکل با فیلتر چند منظوره



hex161
شنبه 30 بهمن 1389, 17:44 عصر
سلام.
من از دستور زیر برای فیلتر چند منظوره دیتابیس اکسس استفاده میکنم.


ADOQu.close;
ADOQu.SQL.Clear;
ADOQu.SQL.Add('select * from HistorySandogh where addcode like'''+Edit1.Text+'%'' and date like'''+Edit2.Text+'%''');
ADOQu.Open;
مشکل اینجاست که هیچ اتفاقی رخ نمیده. یعنی برای جستجو مقدار میدم ولی هیچی نمیشه.
از همین دستور تو دیتابیس dbisam استفاده کردم و کار کرد.
میخواستم بدونم آیا تو دیتابیس اکسس باید تنظیمات خواصی انجام بدم که بتونم از فیلتر چند منظوره استفاده کنم؟
ممنون.

vcldeveloper
شنبه 30 بهمن 1389, 18:41 عصر
توی اکسس به جای % از کارکترهای * یا ؟ استفاده کنید. در ضمن بهتره که به جای اون کوئری، یک کوئری پارامتریک بنویسید.

hex161
شنبه 30 بهمن 1389, 19:07 عصر
بازم اتفاقی رخ نداد.
میشه یه کوچولو درباره کوئری پارامتریک توضیح بدید. شاید مشکلم حل بشه.
خیلی خیلی ممنون

pezhvakco
شنبه 30 بهمن 1389, 20:01 عصر
هیچ اتفاقی رخ نمیده. یعنی برای جستجو مقدار میدم ولی هیچی نمیشه.
منظورتون از این که هیچی نمیشه چیه ؟

اگه مقدار اشتباه وارد کنید نشان میده که هیچی پیدا نکرده ؟

چه ابزاری را برای نمایش خروجی کوئری بکار میگیرین.

hex161
شنبه 30 بهمن 1389, 20:12 عصر
مثل این میمونه که یه دکمه ای که هیچ کدی توش نیست رو کلیک کنید. هیچ اتفاقی رخ نمیده.
برای نمایش از dbgrid استفاده کردم.
یه adotable دارم که وصله به تیبل مربوطه و یه adoQuary که برای فیلتر چندمنظوره ازش استفاده میکنم.

Delphi7_love
شنبه 30 بهمن 1389, 22:29 عصر
یه datasource روی فرم قرار بدبد و خاصیت dataset رو برابر با Adoquery قرار بدبد وخاصیت datasource مربوط به dbgrid رو برابر با DataSource قرار بدبد
مشکل حله
نیازی دیگه به adotable نیست

hex161
یک شنبه 01 اسفند 1389, 00:11 صبح
کاش دکمه تشکر محدودیت نداشت و می شد 100 بار تشکر کرد.
درست شد. از همه دوستانی که تو این تاپیک منو راهنمایی کردند ممنونم.

RahmanAmiriSh
جمعه 14 تیر 1392, 16:26 عصر
بازم اتفاقی رخ نداد.
میشه یه کوچولو درباره کوئری پارامتریک توضیح بدید. شاید مشکلم حل بشه.
خیلی خیلی ممنون

کدتون رو اینطوری اغییر بدید :
adoquery.close;
adoquery.sql.add('select * from Table where Field1 Like :Field1 and Field2 Like :Field2 ');
adoquery.parameters.parambyname('Field1').value := edit1.text +'%';
adoquery.parameters.parambyname('Field2').value := edit2.text +'%';
adoquery.open;