2008-11-16 36 views
8

Tôi có TDbGrid và tôi có thể dễ dàng biết có bao nhiêu cột trong thời gian chạy với thuộc tính FieldCount, nhưng dường như không có thuộc tính RowCount tương ứng để hiển thị số lượng bản ghi đang được hiển thị. Làm thế nào tôi có thể tìm thấy điều này?Đếm các hàng trong một TDbGrid

Trả lời

8

Bạn có thể thử:

DBGrid1.DataSource.DataSet.RecordCount 

Có lẽ có những giải pháp tốt hơn. Nhưng điều này làm việc cho tôi.

+3

TDataSet.RecordCount thường sẽ cung cấp cho -1 tuỳ theo tình hình (như các truy vấn). –

+0

Cảm ơn, có vẻ như tôi phải làm một số chương trình db, nếu không tôi sẽ mất liên lạc. (Hai năm làm việc trên một ứng dụng DB ít hơn). –

+0

Thật vậy, Lars? Vì vậy, nhiều thời gian sử dụng TClientDataset, tôi không nhớ điều đó. Loại đối tượng truy vấn nào (ADO, IBX hoặc DBX) cho biết hành vi này? Tôi tin rằng dbx sẽ, bởi vì các thành phần của nó là con trỏ một chiều - nhưng có nhiều hơn? –

11

Cả hai RowCountVisibleRowCount là các thuộc tính được bảo vệ trong TCustomGrid không được hiển thị trong TDBGrid. Nhưng bạn có thể nhận được vòng mà làm như sau:

type 
    TDummyGrid = class(TDBGrid); 

    RowCount := TDummyGrid(MyDBGrid).RowCount; 
    VisibleRowCount := TDummyGrid(MyDBGrid).VisibleRowCount; 

Được cảnh báo rằng điều này bao gồm tiêu đề.

1

Tôi sẽ sử dụng

TDbGrid.ApproxCount 
Các vấn đề liên quan