View Full Version : گرفتن اطلاعات به صورت صفحه بندی و یک مشکل
  
majnun
جمعه 23 مهر 1389, 01:24 صبح
سلام دوستان 
من میخوام اطلاعات جدولم رو به صورت صفحه بندی شده دریافت کنم 
این این کد استفاده میکنم 
ولی اینجا یکی مشکلی دارم اونم اینه که اگه این وسط چندتا از رکورها پاک بشه id  از حالت مرتب خارج میشه و بعضی نشون داده نمیشه 
ممنون میشم کمک کنید
ALTER PROCEDURE dbo.Select_imageaplod
@page int
AS
	
	
	SELECT imageURL, imagetext, id, filename
FROM     Tbl_aplodimage
WHERE  (id BETWEEN
                      (SELECT COUNT(id) - 10 * (@page + 1) AS Expr1
                       FROM      Tbl_aplodimage AS Tbl_aplodimage_1) AND
                      (SELECT COUNT(id) - 10 * @page AS Expr1
                       FROM      Tbl_aplodimage AS Tbl_aplodimage_1))
	
	RETURN
بهزادصادقی
جمعه 23 مهر 1389, 13:24 عصر
اگر ساختار دقیق جدولت را به صورت یک دستور create table درج می کردی و با ارائه چند دستور insert می گذاشتی جند تا سطر آزمایشی واردش کنیم، آن وقت می تونستم کد ذیل را برایت تست کنم. ولی چون به ساختار جدول یا داده های آزمایشی دسترسی ندارم، این کد را بدون تست کردن برایت نوشم. امیدوارم به دردت بخورد.
ALTER PROCEDURE dbo.Select_imageaplod
@page int
AS
SELECT
	x.imageURL, 
	x.imagetext, 
	x.id, 
	x.filename
FROM     
	(
	SELECT 
		row_number() over( order by id ) rn,
		imageURL, 
		imagetext, 
		id, 
		filename
	FROM
		Tbl_aplodimage
	) x
WHERE
	rn between ((@page-1) * 10 ) + 1 and @page * 10
ORDER BY
	x.id;
	
RETURN
majnun
جمعه 23 مهر 1389, 16:14 عصر
سلام دوست عزیز 
چیز زیادی از این کدی که دادین متوجه نشدم 
ممنون میشم کدتون رو با توجه به فیلدهای این جدول بنویسید
بهزادصادقی
جمعه 23 مهر 1389, 16:47 عصر
سلام دوست عزیز 
چیز زیادی از این کدی که دادین متوجه نشدم 
ممنون میشم کدتون رو با توجه به فیلدهای این جدول بنویسید
بر اساس همون قیلدها نوشته شده. نیازی به تغییر در کد نیست.
majnun
جمعه 23 مهر 1389, 16:52 عصر
ممنون دوست عزیز 
فقط ممنون میشم در موردش توضیح بدین
بهزادصادقی
جمعه 23 مهر 1389, 18:04 عصر
ممنون دوست عزیز 
فقط ممنون میشم در موردش توضیح بدین
شما کد را تست کن ببین کار می کنه یا نه. اگر کار می کرد، بعد من توضیح میدم. چه لزومی داره من چیزی را که کار نمی کنه را توصیف کنم؟
majnun
جمعه 23 مهر 1389, 18:20 عصر
شما کد را تست کن ببین کار می کنه یا نه. اگر کار می کرد، بعد من توضیح میدم. چه لزومی داره من چیزی را که کار نمی کنه را توصیف کنم؟
به دوست عزیز کار میکنه فقط چندتا سوال 
1- منظور از قرار دادن x اول فیلد ها و جاهای دیگه چیه ؟
2- این کد چیکار میکنه ؟
row_number() over( order by id ) rn,
در این قطعه x  معنیش چیه ؟
FROM
		Tbl_aplodimage
	) x
بهزادصادقی
جمعه 23 مهر 1389, 18:41 عصر
x یک derived table است. برای مرور توضیحاتی مختصر در مورد این مفهوم، این لینک را مطالعه نمائید:
http://barnamenevis.org/forum/showthread.php?t=243931&highlight=derived+table
row_number یک ranking function می باشد. با عرض معذرت، الان فرصت توضیح ندارم. ولی شما می توانید در این تالار دنبال آن بگردید. بارها در موردش در این تالار سوال شده.
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.