Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
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: 13
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
 


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

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 03:46:26.


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