Ver Mensaje Individual
  #22  
Antiguo 07-06-2020
marcial marcial is offline
Miembro
 
Registrado: may 2003
Posts: 147
Reputación: 21
marcial Va por buen camino
Perdonad que os moleste de nuevo con este tema. He usado los parámetros como me habéis dicho pero con este código me da el error:
SQL Error code -303
Arithmetic excepcion, numeric overflow or string truncation.

El código que uso es:
Código Delphi [-]
HistoricoRecibos.Close;
HistoricoRecibos.SelectSQL.Clear;
HistoricoRecibos.SelectSQL.add('SELECT * from HistoricoRecibos');
HistoricoRecibos.SelectSQL.add('where (Upper(Socio) LIKE :Socio)');
HistoricoRecibos.SelectSQL.add('OR Cast(lpad(extract(Month from FECHAEMISION),2,''0'') as VarChar(3)) || ''.'' || 
                                   Cast(lpad(extract(Day from FECHAEMISION),2,''0'') as VarChar(3)) || ''.'' || 
                                   Cast(extract(year from FECHAEMISION) as VarChar(5)) LIKE :FechaEmision');
HistoricoRecibos.ParamByName('Socio').AsString := '%' + Edit1.Text + '%';
HistoricoRecibos.ParamByName('FechaEmision').AsString := '%' + Edit1.Text + '%';

HistoricoRecibos.QSelect.ExecQuery;
HistoricoRecibos.Open;

Cuando voy introduciendo la fecha en el Edit1 en este formato: ej."23.06.202" hasta aqui funciona bien y hace bien la consulta, pero cuando introduzco el último "0" de "año 2020" me da el error.

He probado con Cast, Extract y este código es el que mas se aproxima a lo que quiero, sabéis que puede pasar para que me de ese error??
Gracias por anticipado.

Última edición por Casimiro Notevi fecha: 07-06-2020 a las 21:19:06.
Responder Con Cita