SQL con campos fecha.

Nunca pases una fecha en forma literal, porque las bases de datos, segun como esten configuradas, pueden tener un formato default de fecha u otro. Por ejemplo puede ser mm-dd-yy o mmm-dd-yy (mes en 3 letras iniciales), etc. Entonces tu programa solo funcionará para el formato que tenga la base al momento en que lo hayas probado.

Cambia tu select para que diga:

sql.add(‘select * from TABLA where Fecha >= :fecha1 and Fecha <= :fecha2’);
parambyname(‘fecha1′).AsDateTime := strtodate(’01/01/1999’);
parambyname(‘fecha2′).AsDateTime := strtodate(’31/12/1999’);

 

de esta manera no tendras problemas.

Pero puede plantearse otro problema, si en la base tenes definida la fecha como datetime en lugar de date.