Ver Mensaje Individual
  #6  
Antiguo 03-06-2020
marcial marcial is offline
Miembro
 
Registrado: may 2003
Posts: 147
Reputación: 21
marcial Va por buen camino
Hola de nuevo y gracias por el ofrecimiento.
El código que utilizo para filtrar la consulta es este:
Código Delphi [-]
                SQL := 'SELECT * FROM EXTRACTOS WHERE ' +
                       '(Upper(SOCIO) LIKE ' + '''%' +UpperCase(Edit6.Text)+ '%'') OR ' +
                       '(Upper(NRORECIBO) LIKE ' + '''%' +UpperCase(Edit6.Text)+ '%'') OR ' +
                       '(Upper(NOMBRE) LIKE ' + '''%' +UpperCase(Edit6.Text)+ '%'') OR ' +
                       '(Upper(IMPORTEENTREGA) LIKE ' + '''%' +UpperCase(Edit6.Text)+ '%'') OR ' +
                       '(Upper(IMPORTERECIBO) LIKE ' + '''%' +UpperCase(Edit6.Text)+ '%'') OR ' +
                       '(Upper(FECHAAPUNTE) LIKE ' + '''%' +UpperCase(Edit6.Text)+ '%'') OR ' +
                       '(Upper(PAGADO) LIKE ' + '''%' +UpperCase(Edit6.Text)+ '%'') OR ' +
                       '(Upper(CONCEPTO) LIKE ' + '''%' +UpperCase(Edit6.Text)+ '%'') OR ' +
                       '(Upper(CUENTACONTABLECOBRO) LIKE ' + '''%' +UpperCase(Edit6.Text)+ '%'') OR ' +
                       '(Upper(NROCHEQUE) LIKE ' + '''%' +UpperCase(Edit6.Text)+ '%'') OR ' +
                       '(Upper(FECHAVENCIMIENTOCHEQUE) LIKE ' + '''%' +UpperCase(Edit6.Text)+ '%'') OR ' +
                       '(Upper(USUARIO) LIKE ' + '''%' +UpperCase(Edit6.Text)+ '%'')' +

                       ' ORDER BY FechaApunte';

EXTRACTOS.Close;
if pFIBTransaction1.InTransaction then pFIBTransaction1.CommitRetaining;
pFIBTransaction1.StartTransaction;
EXTRACTOS.SelectSQL.Clear;
EXTRACTOS.SelectSQL.Add(SQL);
EXTRACTOS.QSelect.ExecQuery;
pFIBtransaction1.CommitRetaining;
EXTRACTOS.Open;

El motivo de utilizar este sistema de búsqueda es mas visual que efectivo, lo sé. Cuando se va digitando en Edit6 cada carácter, llamo a una rutina (en el OnDrawColumCell) para que pinte de otro color en el DBGrid aquellas apariciones coincidentes con el valor de Edit6.
En realidad no aparecen errores, lo que ocurre es que en los campos DATE o FLOAT, como son: IMPORTEENTREGA, IMPORTERECIBO, FECHAAPUNTE Y FECHAVENCIMIENTOCHEQUE no aparecen resultados al utilizar LIKE o CONTAINING cuando pulso "/" para las fechas o "." para los decimales de los numericos. Sin Embargo, cuando uso Igual, Menor, Mayor, Menor o Igual o Mayor o Igual SI obtiene registros cuando edit6 vale por ejempo "22/01/2020" o "31.60".

En el Select del código, si dejo el UPPER del campo con el LIKE no da error pero los resultados de la consulta no son correctos, si quito el UPPER del campo, al comparar por IGUAL la fecha da el error "Overflow occurred during data type conversion. Conversion error from string 2".

Espero haber sido claro en la explicación y gracias por tu tiempo.
Responder Con Cita