2009-07-20 29 views

Trả lời

11

Nó tạo ra một cursor cho truy vấn, cho phép bạn lặp qua tập kết quả mà không tìm nạp toàn bộ kết quả cùng một lúc. A scrollable cursor, cụ thể, là một cho phép lặp lại ngược.

Ví dụ sử dụng: Bạn có thể cuộn tiến tới cho đến khi bạn tìm thấy bản ghi mình cần và lặp lại để tìm nạp các bản ghi trước đó, nếu bạn cần chúng.

+2

Nếu bạn định sử dụng chúng cũng nên tham khảo tài liệu dbms (thực tế) để tìm ra loại con trỏ bạn muốn sử dụng. Đối với một số phiên bản có thể cuộn được "đắt" hơn con trỏ chỉ chuyển tiếp hoặc thậm chí không khả dụng. – VolkerK

7

Wikipedia cho này:

Với một con trỏ không cuộn, cũng gọi là chuyển tiếp chỉ, người ta có thể FETCH mỗi hàng cùng một lúc nhất, và con trỏ tự động di chuyển đến ngay lập tức sau hàng. Thao tác tìm nạp sau hàng cuối cùng đã được truy xuất định vị con trỏ sau hàng cuối cùng và trả về SQLSTATE 02000 (SQLCODE +100).

Và đây:

Một chương trình có thể xác định vị trí một con trỏ cuộn bất cứ nơi nào trong kết quả thiết sử dụng câu lệnh FETCH SQL.

Bạn nên đọc bài viết liên quan trước đó, nhưng điều này có vẻ như một số thông tin thú vị quá:

con trỏ cuộn có thể có khả năng truy cập cùng hàng trong kết quả thiết nhiều lần. Do đó, dữ liệu sửa đổi (chèn, cập nhật, xóa hoạt động ) từ các giao dịch khác có thể ảnh hưởng đến kết quả thiết lập.

Trong PHP, bạn có thể sử dụng con trỏ cuộn với PDO bằng cách sử dụng báo cáo chuẩn bị (xem PDOStatement::fetch):

Để yêu cầu một con trỏ cuộn cho đối tượng PDOStatement của bạn, bạn phải thiết lập PDO :: Thuộc tính ATTR_CURSOR tới PDO :: CURSOR_SCROLL khi bạn chuẩn bị câu lệnh SQL với PDO :: prepare().

(đó cũng là một ví dụ tiếp tục xuống trang đó)

Những gì có vẻ thú vị khả năng "di chuyển" qua resultset, mà không cần phải có được tất cả các dữ liệu trong bộ nhớ để lặp qua nó được.

1

Đối với Mysql ... không được hỗ trợ = không có sẵn (không phải mysql (i) cũng không PDO):

mysqli_result :: data_seek(), lưu ý rằng các tiểu bang của nhãn hiệu: "Chức năng này chỉ có thể được sử dụng với đệm kết quả đạt được từ việc sử dụng các hàm mysqli_store_result() hoặc mysqli_query()."Tức là, việc tìm kiếm diễn ra trên một bản sao cục bộ của resultset: không phải trên máy chủ. Do đó, nó không hỗ trợ bất kỳ gợi ý nào về" con trỏ có thể cuộn được "

Các vấn đề liên quan