2008-11-16 11 views
8

J'ai un TDbGrid, et je peux facilement dire combien il y a de colonnes à l'exécution avec la propriété FieldCount, mais il ne semble pas y avoir de propriété RowCount correspondante pour afficher le nombre d'enregistrements étant affiché. Comment puis-je trouver ça?Comptage des lignes dans un TDbGrid

Répondre

8

Vous pouvez essayer:

DBGrid1.DataSource.DataSet.RecordCount 

Peut-être il y a de meilleures solutions. Mais cela a fonctionné pour moi.

+3

TDataSet.RecordCount donnera souvent -1 en fonction de la situation (comme les requêtes). –

+0

Merci, il semble que je doive faire une programmation db, sinon je perds le contact. (Deux ans de travail sur une application DB moins). –

+0

En effet, Lars? Tellement de temps en utilisant TClientDataset, je ne m'en souviens plus. Quel type d'objets de requête (ADO, IBX ou DBX) montre ce comportement? Je crois que dbx, parce que ses composants sont des curseurs unidirectionnels - mais il y en a d'autres? –

11

Les deux RowCount et VisibleRowCount sont des propriétés protégées dans TCustomGrid qui ne sont pas exposées dans TDBGrid. Mais vous pouvez contourner ce faire ce qui suit:

type 
    TDummyGrid = class(TDBGrid); 

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

averti que cela inclut l'en-tête.

1

J'utiliser

TDbGrid.ApproxCount 
Questions connexes