2008-11-16 38 views
8

Tengo un TDbGrid, y puedo decir fácilmente cuántas columnas hay en el tiempo de ejecución con la propiedad FieldCount, pero no parece haber una propiedad RowCount correspondiente para mostrar cuántos registros hay siendo mostrado. ¿Cómo puedo descubrir esto?Contando las filas en un TDbGrid

Respuesta

8

Usted podría intentar:

DBGrid1.DataSource.DataSet.RecordCount 

Tal vez hay mejores soluciones. Pero esto funcionó para mí.

+3

TDataSet.RecordCount darán a menudo -1 dependiendo de la situación (como consultas). –

+0

Gracias, parece que tengo que hacer algo de programación en DB, de lo contrario, estoy perdiendo el contacto. (Dos años trabajando en una aplicación DB menos). –

+0

De hecho, Lars? Tanto tiempo usando TClientDataset, no lo recuerdo. ¿Qué tipo de objetos de consulta (ADO, IBX o DBX) muestran este comportamiento? Creo que dbx lo haría, porque sus componentes son cursores unidireccionales, ¿pero hay más? –

11

Ambos RowCount y VisibleRowCount son propiedades protegidas en TCustomGrid que no están expuestas en TDBGrid. Pero puede evitar que haga lo siguiente:

type 
    TDummyGrid = class(TDBGrid); 

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

Tenga en cuenta que esto incluye el encabezado.

1

me gustaría utilizar

TDbGrid.ApproxCount 
Cuestiones relacionadas