ورود

View Full Version : جستجو بعدی در بانک



محسن شمس
شنبه 07 آبان 1384, 19:31 عصر
خسته نباشید دوستان

من برای جستجو در بانک اطلاعاتیم از کد زیر استفاده می کنم
ADOTable2.Filtered:= true ;
ADOTable2.Locate('First Name',edit1.Text ,[]) ;
این کد فقط اولین رکورد را پیدا می کنه

من می خواستم بدونم باید چه کدی بنویسم تا رکوردهای بعدی هم پیدا کنه .

ممنون .

oghab
شنبه 07 آبان 1384, 21:33 عصر
سلام
چرا از adoQuery و دستور select استفاهد نمی کنی؟
این روش که استفاده می کنی من نفهمیدم. ولی شاید اگه بنویسی adotable2.next به رکوردهای بعدی هم دسترسی پیدا کنی!

محمد میرمصطفی
یک شنبه 08 آبان 1384, 06:10 صبح
من هم مدتهاست با این مشکل تو ADO مواجهم. بله درسته حق باشماست. Locate فقط اولین Match رو پیدا می کنه. من کاری که کردم اینه: یه کلاس نوشتم که ADOTable رو می گیره و با Alter یه فیلد اندیس به Table اضافه می کنه که به ترتیب از 0 شروع می شه برای یافتن Match بعدی (چون یعدیه) یه Query می گیرم که تو Whereش شرط match باشه و اندیسش از اندیس فعلی بزرگتر باشه. Query اندیس اون رکورد رو بر می گردونه. بعد به Locate می گم بره به این اندیس جدید بعد هم فیلد اندیس رو حذف می کنم. این روش تو 65000تا رکورد 2 ثانیه طول کشید.

محسن شمس
یک شنبه 08 آبان 1384, 06:53 صبح
آقا تو رو خدا این کدش رو بزار اینجا تا ماهم استفاده بکنیم

خیلی اقایی

ممنون میشم

disappear
دوشنبه 09 آبان 1384, 08:05 صبح
بابا با همون Query سرچ کن بعدش به وسیله دستور Query1.Next; رکوردهای بعدی رو پیدا کن . فکر کنم بهترین راه همین باشه .