Ver Mensaje Individual
  #14  
Antiguo 05-04-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.405
Reputación: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por RedVenom Ver Mensaje
[..] De todos modos se agradece tu "aportacion" a mi problema.
De nada, hombre

¿Acaso no te gusta el código de ecfisa?, por eso te he indicado yo lo del tipo de deporte, porque si es tan obvio como dices entonces no sé cómo no lo has entendido

Sólo has de añadir el filtro por ese campo de "TipoDeporte", hay muchas formas, como te indiqué antes, pero aprovechando el código de ecfisa, puede ser algo así:
Código Delphi [-]
(* True si se alcanzo la cantidad máxima permitida *)
function TForm1.CiclistasFull(ADataSet: TDataSet; Tope, TipoDeporte: Integer): Boolean;
begin
  case TipoDeporte of
    1: // futbol
    2: // ciclismo
       begin
         // aquí debes contar los registros que cumplan con TipoDeporte=2
         // No sé si el dataset que usas es una tabla, un query, etc. pero se trata de contar los registros
         Result := select coun(*) from ADataSet where CampoTipoDeporte=TipoDeporte;
       end;
    3: // canicas
    4: // estampitas de jugadores de futbol
  end;
end;

procedure TForm1.DataSet1BeforeInsert(DataSet: TDataSet);
begin
  if CiclistasFull(DataSet, 3, 2) then  // donde 3 es la cantidad máxima de ciclistas (Tope), y 2 es el TipoDeporte
  begin
    ShowMessage('Error: Pista demasiado angosta para tanta bicicleta...');
    Abort;
  end;
end;
...
Responder Con Cita