Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 22-07-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 27
__cadetill Va por buen camino
Pues mira, con dos simples sentencias SQL tienes todos los datos que necesitas.

Los pasos son los siguientes

1.- Pega en un Datamodule (o formulario) un TQuery
2.- Si utilizas un TDatabase (lo recomendado), linca la propiedad Database del TQuery al TDatabase (como si de un TTable se tratara). Si no utilizas un TDataset, pues haz lo mismo que haces con los TTables
3.- En el sitio donde pretendas mostrar el grafico (un TButton??) pon el codigo siguiente

Código:
 
var NumPersonas : integer;
    NumMujeres : integer;
    NumHombres : integer;
begin
     // calculamos nº de personal
     Query1.Close;
     Query1.SQL.Text := 'select count(*) from usuarios';
     try
        Query1.Open;
     except
           ShowMessage('Error en query');
           Exit;
     end;
     NumPersonas := Query1.Fields[0].AsInteger;

     // calculamos nº de mujeres
     Query1.Close;
     Query1.SQL.Text := 'select count(*) from usuarios where sexo = true';
     try
        Query1.Open;
     except
           ShowMessage('Error en query');
           Exit;
     end;
     NumMujeres := Query1.Fields[0].AsInteger;

     // Numero de hombres
     NumHombres := NumPersonas - NumMujeres;
Con la primera Query, lo que hacemos es contar (Count) todos los registros ((*)) que tiene nuestra tabla (en el ejemplo la tabla se llamaria usuarios
Luego, el resultado de la Query la pasamos a una variable.

Con la segunda Query, lo que hacemos es contar (Count) cuantos registro ((*)) cumplen con la condicion (where) que es mujer (sexo = true)
Y pasamos el resultado de la Query a otra variable

Ahora solo te queda restar las dos variables para saber el numero de usuarios del sexo opuesto.

--------->

El segundo metodo, el de recorrer el Dataset (el TTable) es muy sencillo. Solo basta con hacer un bucle while..do controlando el campo que deseas, es decir

Código:
var NumPersonas : integer;
    NumMujeres : integer;
    NumHombres : integer;
begin
     NumPersonas := 0;
     NumMujeres := 0;
     NumHombres := 0;
     Table1.First;
     while not Table1.Eof do
      begin
           // incremetamos nº de personas
           Inc(NumPersonas);

           // hacemos comprobacion para saber sexo
           if Table1.FieldByName('sexo').AsBoolean then
              Inc(NumMujeres)
           else Inc(NumHombres);

           // pasamos al siguiente registro del Dataset
           Table1.Next;
      end;
Personalmente, te recomiendo el primer metodo (siempre ha de haber una primera vez para ponerse con el SQL!!! ) por su potencia y rendimiento

Bueno, espero que estas explicaciones te sirvan
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:57:51.


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