Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 05-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola RedVenom.

Anoche falleció mi router por lo que no pude seguir con el tema. Recién ahora lo repuse.

Lo lamento por la urgencia que tenías. Pero veo que has estado en muy buenas manos...


Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #22  
Antiguo 06-04-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Entonces, concretando, exactamente qué quieres controlar.
Responder Con Cita
  #23  
Antiguo 06-04-2011
RedVenom RedVenom is offline
Miembro
 
Registrado: oct 2003
Ubicación: Tabasco, Mexico
Posts: 110
Poder: 21
RedVenom Va por buen camino
Pues ya entregue la BETA diriamos de la aplicacion pero si necesito implementar lo que les plantie y la verdad con el poco conocimiento que tengo le he dado vueltas a lo que se y no se me ocurre bueno la solucion si pero el codigo no.
Espero que sigan apoyandome con su valiosa orientacion.
Gracias
Responder Con Cita
  #24  
Antiguo 06-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Agregué un campo a la tabla asociaciones que almacena el número de inscriptos en ese deporte de esa entidad.
Y a fin de simplificar, sólo voy a dejar los campos significativos. Quito por ejemplo nombre del participante, etc:
Cita:
ASOCIACIONES
ID
DEPORTE
INSCRIPTOS

DEPORTES
ID
DEPORTE
MAX_JUGADORES

PARTICIPANTES
ID
DEPORTE

INSCRIPCIONES
ID
ID_PARTICIPANTE
ID_ASOCIACION
ID_DEPORTE
Suponiendo que ya tenés asentados los datos de: ASOCIACIONES, DEPORTES y PARTICIPANTES. Y estas cargando las inscripciones, podrías aprovechar el evento BeforePost de la tabla INSCRIPCIONES:
Código Delphi [-]
procedure TForm1.tbInscBeforePost(DataSet: TDataSet);
var
  Cupo, Anotados: Integer;
begin
  with IBQuery1 do
  begin
    (* Obtener número máximo de jugadores permitidos en el deporte ingresado *)
    SQL.Clear;
    SQL.Add('SELECT MAX_JUGADORES FROM DEPORTES');
    SQL.Add('WHERE ID ='+tbInsc.FieldByName('ID_DEPORTE').AsString);
    Open;
    Cupo:= FieldByName('MAX_JUGADORES').AsInteger;
    Close;
    (* Obtener el número actual de inscriptos para ese deporte *)
    SQL.Clear;
    SQL.Add('SELECT INSCRIPTOS FROM ASOCIACIONES');
    SQL.Add('WHERE DEPORTE = '+tbInsc.FieldByName('ID_DEPORTE').AsString);
    Open;
    Anotados:= FieldByName('INSCRIPTOS').AsInteger;
  end;
  if Anotados >= Cupo then
  begin
   ShowMessage('Lo sentimos mucho, no hay mas cupo')
   Abort;
  end
end;

Es un ejemplo muy simplificado... pero espero que te acerque alguna idea.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 06-04-2011 a las 06:07:12.
Responder Con Cita
  #25  
Antiguo 09-05-2011
RedVenom RedVenom is offline
Miembro
 
Registrado: oct 2003
Ubicación: Tabasco, Mexico
Posts: 110
Poder: 21
RedVenom Va por buen camino
Despues de un pequeño inconveniente que tuve con mi disco duro y casi pierdo todo mi codigo fuente, aqui estoy de regreso y pues no he resuelto el deta lle que les escribi aqui el ejemplo que me pone ECFISA es suponiendo que tengo un campo en el que llevo el control de los inscritos pero no es asi yo lo que deseo hacer es que de la tabla inscripciones yo cuente cuantos estan inscritos de cierta asociacion y comparando el limte maximo de jugadores con los que ya tengo inscritos me diga si puedo inscribir otro jugador o no.
Responder Con Cita
  #26  
Antiguo 09-05-2011
RedVenom RedVenom is offline
Miembro
 
Registrado: oct 2003
Ubicación: Tabasco, Mexico
Posts: 110
Poder: 21
RedVenom Va por buen camino
Talking

Creo que ya lo resolvi aqui les voy a poner el codigo que utilize, pero primero les explico que cree un campo mas en la tabla inscripciones al que llame CONTROL y que lo lleno haciendo una concatenacion de esta forma el "ID" de la Asociacion luego pongo un "-" y lo completo con el "ID" del deporte y por supuesto lo guardo en una variable llamada "Bandera" que lo que contenga el texto de la variable lo guardo en el campo CONTROL, y pues despues de dar esta explicacion ahoara si va el codigo.

Código Delphi [-]
procedure ControlDB(Depor,Bandera: String);
var
CUPO,REGISTRADOS: integer;
Begin
(*Obtengo el numero maximo de jugadores segun el deporte*)
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From DEPORTES Where ID=' + '''' + Depor + '''');
CUPO:= ADOQuery1. FieldByName('MAX_JUGADORES').AsInteger;
(*Cuento los inscritos que ya hay de la asociación en el deporte a través de la variable “bandera”*)
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From INSCRIPCIONES Where CONTROL=' + '''' + Bandera + '''');
REGISTRADOS:=ADOQuery1.RecordCount;
(*Comparo los registrados contra el cupo y ejecuto la accion segun el resultado de la comparacion*)
if REGISTRADOS>=CUPO then
  begin
   ShowMessage('Ya no se puede');
   ADOQuery1.Active:=False;
   INSCRIPCIONES.Cancel;
  end
else
  begin
   INSCRIPCIONES.Post;
   ADOQuery1.Active:=False;
  end;
end;

En caso de que haya alguna observacion sera muy bien recibida.
Gracias por toda su ayuda y orientacion si no hubiera sido por ustedes no hubiera logrado llegar a este pedazo de codigo, y pues como me dijeron la respuesta me la dieron desde el primer dia solo que en ese momento erea unos codigos mas ignorante.
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Limitar cantidad de registros por pagina elarys Impresión 1 29-10-2010 07:38:03
Como limitar la cantidad de registros impresos por hoja mbguantay Impresión 3 25-08-2010 15:22:24
Eliminar registros de mi base de datos Elite237 OOP 9 29-07-2007 22:07:11
¿Cómo limitar la cantidad de carateres a escribir en un RichEdit? Alcolea Varios 5 05-12-2006 03:17:55
Limitar la carpeta donde crear la base de datos fcios Firebird e Interbase 0 01-11-2005 06:03:22


La franja horaria es GMT +2. Ahora son las 00:37:07.


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
Copyright 1996-2007 Club Delphi