PDA

View Full Version : گرفتن اطلاعات به صورت صفحه بندی و یک مشکل



majnun
جمعه 23 مهر 1389, 00: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, 12: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, 15:14 عصر
سلام دوست عزیز

چیز زیادی از این کدی که دادین متوجه نشدم

ممنون میشم کدتون رو با توجه به فیلدهای این جدول بنویسید

بهزادصادقی
جمعه 23 مهر 1389, 15:47 عصر
سلام دوست عزیز

چیز زیادی از این کدی که دادین متوجه نشدم

ممنون میشم کدتون رو با توجه به فیلدهای این جدول بنویسید

بر اساس همون قیلدها نوشته شده. نیازی به تغییر در کد نیست.

majnun
جمعه 23 مهر 1389, 15:52 عصر
ممنون دوست عزیز

فقط ممنون میشم در موردش توضیح بدین

بهزادصادقی
جمعه 23 مهر 1389, 17:04 عصر
ممنون دوست عزیز

فقط ممنون میشم در موردش توضیح بدین

شما کد را تست کن ببین کار می کنه یا نه. اگر کار می کرد، بعد من توضیح میدم. چه لزومی داره من چیزی را که کار نمی کنه را توصیف کنم؟

majnun
جمعه 23 مهر 1389, 17:20 عصر
شما کد را تست کن ببین کار می کنه یا نه. اگر کار می کرد، بعد من توضیح میدم. چه لزومی داره من چیزی را که کار نمی کنه را توصیف کنم؟


به دوست عزیز کار میکنه فقط چندتا سوال

1- منظور از قرار دادن x اول فیلد ها و جاهای دیگه چیه ؟

2- این کد چیکار میکنه ؟



row_number() over( order by id ) rn,



در این قطعه x معنیش چیه ؟



FROM
Tbl_aplodimage
) x

بهزادصادقی
جمعه 23 مهر 1389, 17:41 عصر
x یک derived table است. برای مرور توضیحاتی مختصر در مورد این مفهوم، این لینک را مطالعه نمائید:

http://barnamenevis.org/forum/showthread.php?t=243931&highlight=derived+table

row_number یک ranking function می باشد. با عرض معذرت، الان فرصت توضیح ندارم. ولی شما می توانید در این تالار دنبال آن بگردید. بارها در موردش در این تالار سوال شده.