Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 07-06-2019
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
hola

yo para este tipo de consultas con filtros estáticos utilizo una estructura fija de SELECT (sin necesidad de cambiar o ajustar el SQL en runtime) como esta:

Código SQL [-]
SELECT MARCA,CODIGO,FORMULA,NUMERO,DESCRI,CODIGOI 
FROM INVENTA 
WHERE
  (:minLargo is null or :minLargo <= m1) and
  (:maxLargo is null or m1 <= :maxLargo ) and 
  (:minAncho is null or :minAncho <= m2) and
  (:maxAncho is null or m2 <= :maxAncho ) and 
  (:minAlto is null or :minAlto <= m4) and
  (:maxAlto is null or m4 <= :maxAlto ) 
  -- and  -- resto de opciones --


y los parámetros los cargo de la siguiente forma:


Código Delphi [-]
procedure TForm2.FILTROPBeforeOpen(DataSet: TDataSet);
  procedure SetParamsAsInt(AParam: TParam; AEdit: TEdit);
  var
    AValue:integer;
  begin
    if (AEdit.Text = '') or not TryStrToInt(AEdit.text, AValue) then
      AParam.Clear
    else
       AParam.AsInteger:=AValue;
  end;

begin
  with filtroP, Params do begin
    SetParamsAsCurr(ParamByName('minLargo'), Edit1);
    SetParamsAsCurr(ParamByName('maxLargo'), Edit2);
    SetParamsAsInt(ParamByName('minAncho'), Edit3);
    SetParamsAsInt(ParamByName('maxAncho'), Edit4);
    SetParamsAsInt(ParamByName('minAlto'), Edit5);
    SetParamsAsInt(ParamByName('maxAlto'), Edit6);
  end;
end;

De tal forma que si el usuario no rellena alguno de los campos de busqueda, ese campo se queda sin efecto
Responder Con Cita
 



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
Consulta Anidada farrop SQL 1 04-07-2006 19:28:06
Consulta anidada Malon SQL 5 07-05-2004 17:58:45
Consulta anidada fjcg02 SQL 6 05-02-2004 08:47:58
consulta anidada pzala SQL 2 14-12-2003 22:43:16
consulta sql anidada davidgaldo SQL 2 13-11-2003 14:42:00


La franja horaria es GMT +2. Ahora son las 00:46:05.


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