PDA

Ver la Versión Completa : Problemas con codigo en delphi


Nelly
07-11-2005, 21:38:08
Hola necesito que me ayuden a componer este codigo que esta hecho en delphi 7 y utilizando firebird como base de datos la cuestión es la siguiente:
Este codigo es para realizar una busqueda dentro una tabla llamada eventos de la base de datos, la tabla contiene información de meses atras y tambien información vigente, lo que quiero hacer es basandome en 3 componentes de delphi tales componentes son los TDBLookupComboBox. Tengo 3 componentes de este tipo los cuales utilizo para la fecha,el tipo de evento y para el municipio, lo que quiero exactamente es que cuando seleccione un tipo de evento, un municipio X y una fecha(Pero en la fecha hay una condición, quiero que muestre solo la fecha que eligire en el combo, no quiero que me arroje 10 o más fechas, solo la fecha del combo seleccionada.), al termino de la elección, cuando presione el boton Buscar que me arroje los datos seleccionados.
Quizá este ejercicio sea muy sencillo para algunos, pero en mi caso no opino lo mismo y si me ayudarian mucho si alguien respondiera a mi petición.
Muchas gracias.....

P.D. Si de plano estoy super mal en la logica de este ejercicio, se aceptan criticas constructivas

procedure Tfrmrep.btnbuscarClick(Sender: TObject);
var
evento:integer;
begin
evento:=cmbevento.keyvalue;
if evento in [1,2]>'' then begin
qryrep.Active:=false;
qryrep.SQL.Clear;
qryrep.SQL.Add('select * from eventos');
qryrep.SQL.Add('where cve_evento=:cve_evento');
qryrep.ParamByName('cve_evento').AsInteger;
qryrep.Active:=true;
end else begin
if (cmbevento.KeyValue>'') or (cmbfechevento.DateTime>'') or (cmbmunicipio.KeyValue>-1) then begin
qryrep.SQL.Clear;
qryrep.SQL.Add('select * from eventos where cve_mpo=:cve_mpo ');
qryrep.SQL.Add('where cve_evento starting with: clave and ');
qryrep.SQL.Add('fecha_evento starting with: fecha and ');
qryrep.ParamByName('clave').AsInteger:=cmbevento.KeyValue;
qryrep.ParamByName('fecha').AsDateTime;
qryrep.ParamByName('cve_mpo').AsInteger:=cmbmunicipio.KeyValue;
qryrep.Active:=true;
end else begin
ShowMessage('');
end;
end;
end;

vtdeleon
07-11-2005, 21:47:45
Saludos
una fecha(Pero en la fecha hay una condición, quiero que muestre solo la fecha que eligire en el combo, no quiero que me arroje 10 o más fechas, solo la fecha del combo seleccionada.),..
No estoy seguro, si acabo de entender :confused:

procedure Tfrmrep.btnbuscarClick(Sender: TObject);
var
evento:integer;
begin
evento:=cmbevento.keyvalue;
if evento in [1,2]>'' then begin//QUE ESTAS EVALUANDO AQUI, ESTA MAL ESTA CONDICION
qryrep.Active:=false;
qryrep.SQL.Clear;
qryrep.SQL.Add('select * from eventos');
qryrep.SQL.Add('where cve_evento=:cve_evento');
qryrep.ParamByName('cve_evento').AsInteger;//No estas asignando nada al parametro
qryrep.Active:=true;
end else begin
if (cmbevento.KeyValue>'') or (cmbfechevento.DateTime>'') or (cmbmunicipio.KeyValue>-1) then begin
qryrep.SQL.Clear;
qryrep.SQL.Add('select * from eventos where cve_mpo=:cve_mpo ');
qryrep.SQL.Add('where cve_evento starting with: clave and ');
qryrep.SQL.Add('fecha_evento starting with: fecha and ');
{Veo de where en la misma sentencia}
qryrep.ParamByName('clave').AsInteger:=cmbevento.KeyValue;
qryrep.ParamByName('fecha').AsDateTime;//No asignas nada
qryrep.ParamByName('cve_mpo').AsInteger:=cmbmunicipio.KeyValue;
qryrep.Active:=true;
end else begin
ShowMessage('');
end;
end;
end;
No aporto mas hasta aclara esos puntos

vtdeleon
07-11-2005, 21:50:37
Oops, Ademas de decirte qeu uses las Etiquetas vB (clubdelphi.com/foros/misc.php?do=bbcode):=Delphi-SQL

Ves la diferencia entre post??:):)

Saludos

lpmlpm
07-11-2005, 22:08:09
Ni que decir de un poquito de identación tampoco vendría mal...