Código Delphi
[-]ADO1.Parameters.ParamByName('horafactu').Value := ((FormatDateTime('yyyy/mm/dd',(Mfechahora))));
Seguramente es esa línea, si el campo horafactu es un datetime, le etás pasando una cadena de texto.
Código Delphi
[-]ADO1.Parameters.ParamByName('horafactu').Value := Mfechahora;