Hola
Las sentencias sql se hacen para indicar a la tabla hacer o traer cierta informacion.
Con tu sentencia lo que dices es:
Código SQL
[-]
select * from Factura where id_factura = 'TDBEdit1' or fecha = 'timerpicker1'
osea:
Selecciona TODO de Factura DONDE id_Factura es = a NADA o fecha = a NADA.
Por que nada; Por que no hay nada ahi, lo que estas dandole es un nombre de un componente.
Ahi muchas formas de hacerlo, esto aveces depende del componente que uses, si sigues lo que estas haciendo seria algo asi:
Código SQL
[-]
'select * from Factura where id_factura = '+TDBEdit1.text+' or fecha = '+timerpicker1.date'
Pero no te aseguro que funcione, lo mejor es usar parametros.
Saludos