PDA

View Full Version : تکنیک Paging



bpzone
دوشنبه 13 اردیبهشت 1389, 10:33 صبح
دوستان عزیز با سلام
من یک جدولی دارم که در حدود 1000 رکورد داخلش ذخیره شده
حالا میخوام با هر بار سلکت کردن فرضاً 50 ردیف رو بخونم و دفعه بعد بهش بگم از کدوم ردیف شروع کنه و 50 ردیف بعدی رو برام برگردونه

چجوری باید این دستور رو بنویسم ؟
:افسرده:

mdsh1400
دوشنبه 13 اردیبهشت 1389, 11:38 صبح
سلام

اگر کاری را که در کل می خواهی انجام دهی توضیح بدهی شاید راحت تر بتوان راهنمایی کرد (مثلا اگر برای صفحه بندی یک فهرست لازم داری که راه های ساده تری دارد)

در این مورد می توانید یک فیلد autoincrement داشته باشید (مثلا با نام id) و به حالت زیر جستجو نمایید

select * from table1 where id< 100 and id>50

محمد سلیم آبادی
دوشنبه 13 اردیبهشت 1389, 11:45 صبح
دوستان عزیز با سلام

من یک جدولی دارم که در حدود 1000 رکورد داخلش ذخیره شده
حالا میخوام با هر بار سلکت کردن فرضاً 50 ردیف رو بخونم و دفعه بعد بهش بگم از کدوم ردیف شروع کنه و 50 ردیف بعدی رو برام برگردونه


چجوری باید این دستور رو بنویسم ؟
:افسرده:

راجب تکنیک Paging مطلب در اینترنت فراوان وجود دارد. فکر می کنم اگر با کلید واژه های زیر جستجو کنید حتما مقاله های خوبی پیدا می کنید:
Paging in sql server

bpzone
دوشنبه 13 اردیبهشت 1389, 12:39 عصر
من یک جدول دارم که در حدود 1000 تا رکورد رو توی خودش ذخیره کرده
می خوام اطلاعات این جدول رو توی گرید نمایش بدم
مشکل اینجا هست که نمی خوام تمام رکوردها یکباره نمایش داده بشه
هر بار نمایش فرضاً 50 یا 100 رکورد
و با زدن دکمه بعدی 50 یا 100 رکورد بعدی رو نمایش بده چجوری باید این اطلاعات رو مدیریت کرد ؟
از بانک
SQL 2005
هم استفاده می کنم
:افسرده:

محمد سلیم آبادی
دوشنبه 13 اردیبهشت 1389, 13:01 عصر
انتظار نداشته باشین که بیاییم دوباره مطلبی که بارها و بارها در موردش کد نوشته شده بازم در اینجا برای شما بنویسیم.
از ترکیب SP و ROW_NUMBER این مساله را باید حل کنید این مقاله ها را بخونید:

http://www.15seconds.com/issue/070628.htm
http://www.davidhayden.com/blog/dave/archive/2005/12/30/2652.aspx
http://www.sqlteam.com/article/server-side-paging-using-sql-server-2005

#Faranak
سه شنبه 14 اردیبهشت 1389, 22:58 عصر
من یک جدول دارم که در حدود 1000 تا رکورد رو توی خودش ذخیره کرده
می خوام اطلاعات این جدول رو توی گرید نمایش بدم
مشکل اینجا هست که نمی خوام تمام رکوردها یکباره نمایش داده بشه
هر بار نمایش فرضاً 50 یا 100 رکورد
و با زدن دکمه بعدی 50 یا 100 رکورد بعدی رو نمایش بده چجوری باید این اطلاعات رو مدیریت کرد ؟
از بانک
SQL 2005
هم استفاده می کنم
:افسرده:
سلام من الان داشتم این کارو انجام می دادم گفتم برای شما هم بزارم تا اگه هنوز نتیجه نگرفتید استفاده کنیدspای که من نوشتم
شماره صفحه و تعداد رکورد رااز شما گرفته و همانطور که می خواهید نمایش می دهدمی توانید شماره صفحه را دربرنامه یکی یکی اضافه کنید که این دیگر ربطی به پیجینگ نداردو خودتان باید طبق برنامه تان الگروریتم اضافه کردن را طراحی کنید:



create proc Usp_pager
@PageNo int,
@RowCount int
as
begin
with Q
as
(
select ROW_NUMBER()
over(order by productid)'Row',name,color
from AdventureWorks.Production.Product
)
select * from Q
where Row between ((@pageno-1)*@RowCount)+1 and @pageNo*@RowCount
end
GO
Usp_pager 2,20