Contar numero de True que aparece en un campo

Saludos,
Con el siguiente código puedo guardar el numero de reguistros de mi base de datos (Paradox) en una variable i.
i := Table1.RecordCount
Quisiera saber como guardar en una variable el numero de veces que aparece la palabra True en un campo.
Nota: Estoy dando mis primeros pasos en Delphi, y lo que quiero es almacenar en una variable el numero de hombres que hay en mi BD, y esto lo puedo saber al contar cuantas veces esta la palabra True en el campo Hombres.
Gracias...

1 respuesta

Respuesta
1
1. Lo puedes hacer mediante una consulta SQL.
SELECT COUNT(*) AS NUMHOMBRES FROM NOMBRETABLA WHERE HOMBRE=TRUE
En el código:
query1.open;
numnombres := query1.fieldbyname('numhombres').AsInteger;
2. O si no recorriendo el dataset.
Para hacer eso, yo accedería al dataset y lo obtendría de allí de la manera:
procedure TForm1.Button1Click(Sender: TObject);
var
total : integer;
begin
total := 0;
With DBGrid1.DataSource.DataSet do
begin
DisableControls;
First;
while not eof do
begin
if Fieldbyname('Hombre').AsBoolean = True then
total := total + 1;
Next;
end;
EnableControls;
end;
Showmessage(IntToStr(total));
end;
Hola, Antipauli, disculpa el que no te halla agradecido, pero estuve sin computador unos 4 días.
Tu respuesta fue genial, me funcione a la perfección, claro que tuve que implementarle un DBGrid el cual no lo estaba utilizando ya que tengo un formulario con varios DBEdit, sin embargo inserte un DBGrid según tu ejemplo y me funciono.
Ahora te pido un consejo,
Como el DBGrid no lo quiero visualizar, lo que hago es colocarlo en modo no visible, quisiera saber si esto es buena idea o hay otra forma de hacerlo.
Saludos,
Ajum
Si no quieres poner el dbgrid y lo que quieres es un dato tan concreto, quizá podrías hacer una consulta SQL en una query que te retornara eso.
SELECT COUNT(*) FROM TABLA WHERE CAMPO=TRUE
Aunque, si te fijas, en mi ejemplo no es necesario ningún dbgrid. Estoy accediendo al objeto dataset que es al que vinculas los dbedits, es la query o tabla que has ejecutado, puedes acceder a través del datasource.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas