PDA

View Full Version : Fetch کردن تدریجی اطلاعات



Zahraii
شنبه 10 شهریور 1386, 18:20 عصر
با سلام
آیا راهی وجود داره که بتوان هنگام اتصال دلفی و MS SQL داده ها را بصورت تدریجی Fetch کرد مثلا از رکورد 1000 تا 1100 ؟

SYNDROME
شنبه 10 شهریور 1386, 19:59 عصر
با سلام

با سلام
آیا راهی وجود داره که بتوان هنگام اتصال دلفی و MS SQL داده ها را بصورت تدریجی Fetch کرد مثلا از رکورد 1000 تا 1100 ؟
اگر رکودهای شما گذاری شده باشند می توانید چنین کاری بکنید.


Select * From Tbl_Test Where ID >= 1000 And ID <=1100

اگر هم رکودهای مورد نظر دارای شرایط خاصی باشند می توانید با توجه به آن شرایط اطلاعات را واکشی کنی.
موفق باشید

Zahraii
یک شنبه 11 شهریور 1386, 10:53 صبح
از روی ID نمی شه.فرض کن 100 تا 100 بخوایی Fetch کنی اگر این کار رو انجام دادید پاسخ دهید.

vcldeveloper
یک شنبه 11 شهریور 1386, 13:45 عصر
می تونید از کوئری مثل این استفاده کنید:


SELEC TOP 100 * FROM MyTable WHERE ID > :ParamID
برای صفحه اول، به پارامتر مربوطه مقداری بدید که کمتر از اولین شماره ID باشه، مثلا صفر یا -1:

AdoTable1.Parameters[0].Value := 0;

بعد از دریافت هر صفحه، ID آخرین رکورد دریافت شده را ذخیره کنید و مقدار پارامتر را با آن تنظیم کنید:

AdoTable1.Parameters[0].Value := LastFetchedRecID;

Zahraii
یک شنبه 11 شهریور 1386, 16:46 عصر
با تشکر از شما آقای کشاورز روشی خیلی خوبیه فقط به این شرط که ترتیب رکورد ها رو عوض نکنیم مثلا بر اساس یک ستون دیگه sort نکنیم

vcldeveloper
دوشنبه 12 شهریور 1386, 02:25 صبح
فقط به این شرط که ترتیب رکورد ها رو عوض نکنیم مثلا بر اساس یک ستون دیگه sort نکنیم
در همچین شرایطی داده های هر صفحه را بصورت Local سورت می کنند، نه در سمت سرور. در سمت سرور داده های شما بر اساس فیلد کلید مرتب شده هستند و تغییر Sort در سمت کلاینت تاثیری بر روی داده های سمت سرور نخواهد داشت.