Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Número de registros en un Dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=76072)

Parsec 06-10-2011 21:33:02

Número de registros en un Dbgrid
 
Buenas,

me he bloqueado......estoy buscando y no encuentro nada.
Necesito saber la cantidad de filas que tiene un Dbgrid sin tener que consultar ninguna tabla asociada. Solo la propiedad del Dbgrid que me diga si hay 10 o 100 registros.

Saludos

oscarac 06-10-2011 21:53:54

un dbgrid no asociado a ninguna tabla?
pues no lo se
si el dbgrid esta asociado a una tabla (lo cual es su finalidad), podrias contar los registros de la tabla asociada

Código Delphi [-]
 
registros := tblLoquesea.reccount

Parsec 06-10-2011 22:01:00

Si que está asociado a una tabla, la cuestión es que hago la consulta desde una función del sistema y la llamo desde muchos sitios y no quiero crear ninguna variable global para pasarle el dato.
Imagino que de la misma forma que se pueden saber el número de columnas (Dbgrid.Columns.Count) se podrá saber el número de filas.

Saludos

ecfisa 06-10-2011 22:13:50

Hola Parsec.

Lamentablemente el DBGrid no es sino una representación visual del contenido de una tabla. Podrías hacer algo como:
Código Delphi [-]
function NroRegistros(ADBGrid: TDBGrid): Integer;
begin
  Result:= ADBGrid.DataSource.DataSet.RecordCount;
end;
Pero si te fijas bién, verás que en realidad, estas consultando el DataSet. Hay además otro problema, la propiedad RecordCount no funciona con todos los TDataSets.

Creo que lo mejor es hacerte una función usando una consulta SQL que devuelva el resultado. Si especificas con que motor de BD y componentes estás trabajando sería más fácil aproximar una respuesta.

Un saludo.

Parsec 06-10-2011 22:19:49

Siendo así me puedo apañar.
De todas formas es un consuelo porque he estado buscando por el foro un buen rato sin ningún resultado y mi autoestima estaba por los suelos.

Gracias y un saludo

cloayza 07-10-2011 16:12:01

Cita:

Empezado por ecfisa (Mensaje 414809)
Código Delphi [-]
function NroRegistros(ADBGrid: TDBGrid): Integer;
begin
  Result:= ADBGrid.DataSource.DataSet.RecordCount;
end;

Le agregaria lo siguiente:

Código Delphi [-]
function NroRegistros(ADBGrid: TDBGrid): Integer;
begin
       Result:=0;       
       If Not Assigned(ADBGrid.DataSource) then Exit; //Valida si el grid tiene asignado un TDatasource
       if Not Assigned(ADBGrid.DataSource.Dataset) then exit;  //Valida si el Datasource tiene asignado un Dataset
       If Not  ADBGrid.DataSource.DataSet.Active then Exit;  //Valida si el Dataset esta abierto

      Result:= ADBGrid.DataSource.DataSet.RecordCount;
end;
Siempre es bueno tomar algunas precauciones...:D

Saludos

ecfisa 07-10-2011 19:13:15

Cita:

Empezado por cloayza (Mensaje 414863)
Siempre es bueno tomar algunas precauciones...:D

Nunca está de más ;)

Saludos. :)

buca1678 10-04-2017 02:55:06

Contar registros de un Dbgrid
 
mostrar en un label el numero de filas de la columna de un dbgid

sqlquery1.Close;
sqlquery1.SQL.Text := 'select * from accesorio where VERIFICADO IS NULL';
sqlquery1.Open;
sqlquery1.last;
sqlquery1.first;
label1.Caption := 'IntToStr(sqlquery1.RecordCount);

Casimiro Notevi 10-04-2017 10:08:16

Recuerda poner los tags al código fuente, ejemplo:



Gracias :)


La franja horaria es GMT +2. Ahora son las 03:01:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi