Hola.
Un par de consideraciones, ¿ Numero es numérico ? en este caso no hay que poner delimitadores, y el FormatDateTime lo tienes que poner obligatoriamente, puesto que sinó te cogerá el formato del sistema, el cual puede ser distinto en cada ordenador.
Es decir :
Código:
MiQuery.SQL.Text := 'delete from lecturas where numero=' + IntToStr(num) +
' and fecha = ' + QuotedStr(FormatDateTime('mm/dd/yyyy', fecha));
MiQuery.ExecSQL;
NOTA : Porqué en la base de datos veas las fechas como dd/mm/yyyy no quiere decir que internamente se guarden en este formato. Interbase/Firebird siempre las trata internamente como mm/dd/yyyy, y en una sentencia las tienes que pasar en este formato. (Si lo ves almacenado como dd/mm/yyyy es solo porqué se hace la transformación en el momento de presentarlo en pantalla, para mayor comodidad del usuario).
Saludos.