PDA

View Full Version : مشکل در فیلتر کردن جدول DBISAM



nasr
دوشنبه 14 اردیبهشت 1388, 12:39 عصر
سلام

من یک جدول DBISAM دارم وقتی فیلتر میکنم خیلی طول میکشه

آیا این کد ایرادی داره؟


DM.TBSood.Active := true;
Dm.TBSood.Filter := 'code_sabt = ' + dbEdit1.Text + '';
DM.TBSood.Filtered := true;

ممنون

mehdimdp
دوشنبه 14 اردیبهشت 1388, 19:08 عصر
بله
كد شما خيلي مشكل داره
نحوه صحيح فيلتر كردن بدين صورته:


tabel.Filtered:=false;
tabel.Filter:='شروط';
tabel.Filtered:=true;

nasr
سه شنبه 15 اردیبهشت 1388, 09:06 صبح
جدول قبل از فیلتر کردن باید Active بشه یا بعد از فیلتر؟

vcldeveloper
سه شنبه 15 اردیبهشت 1388, 11:38 صبح
جدول قبل از فیلتر کردن باید Active بشه یا بعد از فیلتر؟
جدول قبل از فیلتر باید Active باشه، ولی قبل از فیلتر خصوصیت Filtered باید False باشه.

درباره سرعت، من نمیدونم DBISAM چطوری کار میکنه، ولی ممکن هست بجای Cache کردن رکوردها در حافظه، سعی در خواندن آنها از دیسک و فیلتر کردن آنها بکنه. اگر این کار را انجام میده، طبیعی هست که فیلتر کردن زمان بیشتری نیاز داشته باشه.
بطور عادی وقتی شما از ADO یا BDE استفاده می کنید، فیلتر فقط بر روی داده های Cache شده در حافظه اعمال میشه، برای همین هم سرعت فیلتر بسیار بالا هست.

می تونید به مستندات DBISAM رجوع کنید، و ببینید آیا نکته ایی در این زمینه وجود داره یا نه.