کمک در مورد نوشتن کرسر برای بیرون کشیدن برخی از رکوردها

mojmos

Member
سلام
من دارم يه سايت طراحي ميکنم و مي خوام اطلاعات ديتابيس رو به صورت صفحه بندي شده به کاربر ارائه بدم (مثل گوگل که نتايج جستجو رو صفحه بندي ميکنه) براي اينکه سطرهاي مورد نياز رو از ديتابيس بيرون بکشم تا توي يک صفحه نشون بدم (مثلا در هر صفحه 10 رکورد) از کرسر به صورت زير استفاده کردم:

-------------------------------------------------------------------------------------
ALTER PROCEDURE dbo.BrouseProducts
(
@low int,
@high int
)

AS

DECLARE @counter int,@a int
DECLARE BrouseProductsCursor CURSOR SCROLL FOR
select Productid, ProductName, ProductDescription, UnitPrice, unitsAvilable, companyName from products join suppliers on products.SupplierID = suppliers.SupplierID
OPEN BrouseProductsCursor
SET @counter=@low
WHILE @counter <= @high
BEGIN
FETCH ABSOLUTE @counter FROM BrouseProductsCursor
SET @counter = @counter+1
END
CLOSE BrouseProductsCursor
DEALLOCATE BrouseProductsCursor
-----------------------------------------------------------------------------------------------------------------------------
حالا اگه مثلا رکوردهاي 20 تا 30 رو بخوام اين دستور رو ميدم:

exec BrouseProducts 20 , 30​


مشکل اينه که اين کرسر 10 تا رکورد را توي ده تا جدول جدا بر ميگردونه و زبان ميزبان(HL) فقط يکي از اونها رو ميگيره
يعني هر دستور FETCH يک رکورد در يک جدول برميگردونه مثلا براي مثالا بالا 10 تا جدول برميگردونه. درحالي که من ميخوام همه رکوردها در يک جدول واحد برگردند

بايد چه کار کنم تا : همه رکوردها در يک جدول واحد برگردند

ممنون از همه ببخشيد که خيلي حرف زدم
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا