Phân trang sử dụng cursor trong Sql 2000

Phân trang sử dụng cursor trong Sql 2000

Chào các bạn. Mình xin giới thiệu với các bạn về Cursor trong SQL và cách sử dụng nó để dùng cho việc phân trang

Cursor giúp chúng ta có thể lấy dữ liệu vào trong bộ nhớ sau đó bạn có thể Fetch (nạp) lần lượt từng bản ghi  bằng cách Move Next.

Bây giờ mình xin giới thiệu cách dùng Cursor để phân trang mà mình đã học được từ Thầy của mình.

Giả sử mình có bảng được tạo ra như sau:

create table sitelinks
(
                           iid int primary key identity(1,1),
                           vurl varchar(100),
                           vdesc nvarchar(200)
)

Để phân trang thì đầu tiên ta cần phải biết được bạn muốn lấy ra trang thứ bao nhiêu và số bản ghi trả về là bao nhiêu. Stored Procedure như sau:

CREATE PROC padding @curentpage int, @returnrows int
AS
CREATE TABLE #tb_temp(iid int, vurl varchar(100), vdesc nvarchar(200))
DECLARE   padding_cursor SCROLL CURSOR
FOR
            SELECT * FROM sitelinks  
OPEN padding_cursor

DECLARE  @iid int

DECLARE   @vurl varchar(100)

DECLARE   @vdesc nvarchar(200) 

DECLARE   @from int

DECLARE   @count_of_rows int

DECLARE  @total_row int 

SET @from = @curentpage * @returnrows + 1

SET @total_row = @@cursor_rows 

BEGIN

SET @count_of_rows = @returnrows

            WHILE(@count_of_rows > 0)

            BEGIN

                        FETCH ABSOLUTE @from FROM padding_cursor INTO @iid, @vurl, @vdesc

                        INSERT INTO #tb_temp VALUES(@iid, @vurl, @vdesc)

                        SET @from = @from + 1

                        SET @count_of_rows = @count_of_rows -1

            END

END 

CLOSE padding_cursor 

DEALLOCATE padding_cursor 

SELECT * FROM #tb_temp

SELECT @total_row AS total_record

Ở đây chúng ta sẽ dùng một bảng tạm #tb_temp để insert lần lược từng bản ghi đựợc chọn, sau khi đã insert hết tất cả các bản ghi thì ta sẽ đóng con trỏ và gọi bảng #tb_temp ra.

Bây giờ bạn chỉ việc nhập dữ liệu vào bảng sitelinks và gọi Stored Procedure  “padding” ra. Ví dụ:

EXEC padding 0, 5

Sẽ lấy ra 5 bản ghi tại trang 1.

Hy vọng bài viết này sẽ giúp ích cho các bạn.

Tags: 
Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Tommy Tran

Tommy Tran owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy
  • Phone/Zalo: (+84) 944 225 212
  • WhatsApp: (+84) 944 225 212
  • Line Messenger: (+84) 944 225 212
  • Email: [email protected]
  • Telegram Messenger: https:/t.me/tommytran0401

Bình luận (0)

 

Add Comment

Plain text

  • No HTML tags allowed.
  • Các địa chỉ web và email sẽ tự động được chuyển sang dạng liên kết.
  • Tự động ngắt dòng và đoạn văn.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
4 + 1 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

Quảng cáo việc làm

 

Thích hợp các bạn nữ mảng thợ may làm việc tại nước NGA

Đơn hàng Tuyển dụng 100 Thợ may đi Nga(đợt 1 tháng 3.2021, đợt 2 tháng 5.2021). Lương thực lãnh 800 USD, bao ăn ở, vé máy bay và visa, phí xuất cảnh(1800 USD)trả khi đi làm có lương. Bạn có thể liên hệ CÔNG TY qua Phone/Zalo: (+84) 944 225 212. Công ty sẽ tư vấn cho bạn.

Xem chi tiết: >>> https://bit.ly/3o9NOfR

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
TS Nguyễn Đức Khảm trả lời diệt côn trùng mối

TS Nguyễn Đức Khảm trả lời diệt côn trùng mối

Nhà tôi đợt này xuất hiện mối, liệu dùng nước sôi đổ vào tổ mối có diệt được chúng không

Hướng dẫn Drupal 7: Load content nodes vào modal overlay sử dụng AJAX

AJAX to the rescue.  By loading each of the individual content nodes "on demand" we can cut the unnecessary burden of loading everything up front, and only load the content that is actually requested by the visitor

Vì sao Android, iOS thành công trong khi Windows Phone, WebOS thất bại?

Vì sao Android, iOS thành công trong khi Windows Phone, WebOS thất bại?

Hiện nay trên thị trường thiết bị di động như smartphone, tablet có tới dăm bảy HĐH cùng song hành tồn tại.

Wordpress Freelancer

 

Wordpress Freelancer