Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 03-06-2020
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 915
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Creo que los filtros están mal...

Que sentido tiene evaluar un campo fecha como mayusculas: upper(fechaEmision)?
Que sentido tiene evaluar un campo float como mayusculas : Upper(ImporteRecibo)?

Te sugiero que si estas filtrando por fecha utilices las siguientes estrategias, siendo f1 y f2 parámetros introducidos a la consulta:

1) FechaEmision = :f1
2) FechaEmision between :f1 and :f2 es equivalente a (FechaEmision>=:f1 and FechaEmision<= :f2)
3) FechaEmision <= :f1
4) FechaEmision >= :f1

En cuanto a filtro de valores numéricos (enteros, reales), sigue la misma sugerencia:

1) ImporteRecibo=:v1
2) ImporteRecibo between :v1 and :v2 es equivalente a (ImporteRecibo>=:v1 and ImporteRecibo<= :v2)
3) ImporteRecibo<=:v1
3) ImporteRecibo>=:v1

Dicho lo anterior, te propongo la siguiente modificación:
Parámetros de la consulta:
f1 y f2: Valores de fechas mínimo y máxima
v1 y v2: Valores de importe mínimo y máximo

Código SQL [-]
SQL :=  'SELECT * FROM HISTORICO WHERE ' +
            '(FECHAEMISION Between :f1 and :f2) OR ' +
            '(IMPORTERECIBO Between :v1 and v2) OR ' +
            '(Upper(CONCEPTO) LIKE ' + '''%' +UpperCase(Edit2.Text)+ '%'') ' +
            ' ORDER BY FechaEmision';
             CONSULTA;

Código Delphi [-]
       SQL.Add('SELECT * '); {Es necesario traer todos los campos? }
       SQL.Add('FROM HISTORICO WHERE ');
       SQL.Add('(FECHAEMISION Between :f1 and :f2) OR');
       SQL.Add('(IMPORTERECIBO Between :v1 and v2) OR');
       SQL.Add('(Upper(CONCEPTO) LIKE :concepto');
       SQL.Add(' ORDER BY FechaEmision');

       ParamByName('F1').AsValue:=Date(); //Fecha actual
       ParamByName('F2').AsValue:=Date(); //Fecha actual

       ParamByName('V1').AsValue:=1000; //Valor mínimo
       ParamByName('V2').AsValue:=1000; //Valor máximo

       ParamByName('Concepto').AsValue:='%' +UpperCase(Edit2.Text)+ '%') ;

       {Abrir consulta...}

Saludos cordiales
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
Ayuda BD Access? Ayuda al modificar!! DarkArias Conexión con bases de datos 4 24-08-2013 23:47:41
Instalar Ayuda (.HLP) en la Ayuda de Delphi? MasterXP Varios 6 12-04-2006 06:57:49
Ayuda para crear ayuda... Gabriel2 Varios 2 10-06-2005 00:15:18
ayuda con strtofloat, ayuda punto flotante TURING Varios 5 30-04-2004 08:03:59
Ayuda Con Instalacion De Archivos De Ayuda Legolas Varios 1 01-12-2003 14:48:03


La franja horaria es GMT +2. Ahora son las 19:48:12.


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