2009-09-03 22 views
5

Tôi muốn nối thêm một bản ghi trong một TClientDataSet dựa trên một bản ghi khác (trong cùng TClientDataSet này). Vấn đề là tôi không thể truy cập một bản ghi khác trong TClientDataSet vì con trỏ được trỏ tới hàng mà tôi đang thêm vào. Và tôi không thể tìm thấy một cách khác để truy cập các bản ghi khác trong cùng một TClientDataset.Delphi: Có cách nào để truy cập hồ sơ trong một TClientDataset ngoài việc di chuyển con trỏ

Tất nhiên tôi có thể sử dụng thêm TClientDataSet, sao chép một số nội dung và giải quyết theo cách đó, nhưng tôi không thích giải pháp đó.

Vì vậy, có cách nào truy cập vào các hàng/bản ghi trong TClientDataset ngoài việc di chuyển con trỏ không?

Trả lời

15

Cách duy nhất để thực hiện việc này là hoàn toàn phân tích nội dung thuộc tính ClientDataSet.Data.

Điều đó có nghĩa là bạn sẽ cần phải tự viết hầu hết các chức năng của ClientDataSet.

Dễ dàng sao chép con trỏ vào một ClientDataSet mới, sau đó sử dụng con trỏ đó để duyệt qua các bản ghi của bạn. Sau đó, bạn có thể sử dụng ClientDataSet cũ của mình để thực hiện các phụ thêm.

Bài viết này giải thích về con trỏ nhân bản: Cloning ClientDatSet Cursors

--jeroen

0

Bạn có thể có một cái nhìn tại các phương pháp TClientDataSet.CloneCursor. Để biết thêm thông tin, hãy xem: http://edn.embarcadero.com/article/29416

+0

Bạn có thấy câu trả lời của Jeroen (trước đó) đưa ra đề xuất tương tự, với cùng một liên kết, nhưng cũng có thêm thông tin giải thích? – Argalatyr

+0

Đừng lo lắng; tốt hơn là có nhiều câu trả lời hơn là không có câu trả lời nào cả. –

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