PDA

View Full Version : جستجوی سریع تر ...



کامروا
پنج شنبه 09 شهریور 1391, 00:01 صبح
سلام
از MyQuery شرکت Devart استفاده میکنم و همچنین DBAdvGridTMS

یک ستون چکباکس دار ساختم و از طریق کد زیر، state چکباکس ها رو بدست میارم و ستون id در MyQuery رو واکشی میکنم :



var
state : Boolean;
CHkCounter : integer;
...
...
...
for CHkCounter := 1 to MyQuery1.RecordCount do
Begin
if DBAdvGrid1.GetCheckBoxState(1,CHkCounter,state) then
Begin
if state then
Begin
MyQuery1.RecNo := CHkCounter;
Qry_Delete.AddWhere(' id = ' + MyQuery1.FieldByName('id').AsString);
End;
End;
End;



حالا فرض کنید که 10.000 تا رکورد دارم و میخوام id رو بکشم بیرون.

از این طریق حدود 2 دقیقه طول میشه !!!!
خیلی زیاده !

روش بهتری سراغ دارید ؟




تشکر

Mask
پنج شنبه 09 شهریور 1391, 10:46 صبح
منم این مشکل رو داشتم. میتونید از ایندکس گزاری استفاده کنی. وضعیت بهتر میشه.

کامروا
پنج شنبه 09 شهریور 1391, 11:07 صبح
میشه یک مثال بزنید تا حالا ایندکس گذاری نکردم!

مرسی

سعید صابری
پنج شنبه 09 شهریور 1391, 14:22 عصر
DBAdvGridTMS کمی کنند است اگه برای نمایش از Dbgrideh استفاده کنید فکر کنم بهتر باشه
و در ضمن اگه به جای حلقه از دستورات SQL و یک شرط ساده استفاده کنید فکر کنم بهتر باشه (شرط برابر فیلدهای که true هستند)
اگه دقیق تر بگین که می خواین چه کاری انجام بدید بهتر میشه کمکتون کرد