Cuando vi la parte de: DTexto.FieldByName('Fecha').asString y que mencionas que lo traes de un archivo, recordé que te había recomendado utilizar el TJVCSVDataset para leer tu archivo, entonces, lo que hay que hacer sería mas o menos:
Código Delphi
[-]
...
var Year, mes, Dia, Hora, Minuto: Word;
Fecha, Time: TDateTime;
...
Year := strtoint(Copy(DTexto.FieldByName('Fecha').asString,1,4));
Mes := strtoint(Copy(DTexto.FieldByName('Fecha').asString,5,2));
Dia := strtoint(Copy(DTexto.FieldByName('Fecha').asString,7,2));
Hora := strtoint(Copy(DTexto.FieldByName('Hora').AsString,1,2));
Minuto := strtoint(Copy(DTexto.FieldByName('Hora').AsString,3,2));
Fecha := encodedate(year, mes, dia);
Time := encodetime(Hora, Minuto, 0, 0);
ReplaceTime(Fecha, Time);
Parameters.ParamByName('Hor_FechaHora').Value := Fecha;
Eso estoy 100% seguro que te va a funcionar y ya vas a tener la fecha y la hora en un solo campo. Al final solo requerirías utilizar la función DATEPART de SQL Server para consultar ya sea la fecha o la hora. Y también podrías utilizar la función CONVERT de SQL Server para darle formato.
Eso seguro te funciona, de cualquier manera, déjame ver si se me ocurre otra cosa.