¿Las reglas de mapeo de FireDAC no se aplican a los parámetros?

tengo unTFDConnection a una base de datos FireBird para la que solicitoMapeo de tipo de datos para compatibilidad con una tecnología de acceso a datos anterior (SQLDirect):

with FormatOptions.MapRules.Add do     // TIMESTAMP will be ftDateTime instead of ftTimeStamp
begin
   SourceDataType := dtDateTimeStamp;
   TargetDataType := dtDateTime;
end;
with FormatOptions.MapRules.Add do     // FLOAT will be ftFloat instead of ftSingle
begin
   SourceDataType := dtSingle;
   TargetDataType := dtDouble;
end;
FormatOptions.OwnMapRules := true;

En tiempo de ejecución, creo un TFDQuery que enlace a esa TFDConnection.
Puedo ver que hereda las reglas de mapeo:FormatOptions.MapRules.count=2

Asigno una consulta INSERT a su SQL.Text:

insert into TT_ACT (TT_ACT_ID,TT_PARENT_ID,TT_FROMDATE,TT_TODATE,TT_NAME,TT_NR,TT_CODE,TT_GROUP...)
values (:TT_ACT_ID,:TT_PARENT_ID,:TT_FROMDATE,:TT_TODATE,:TT_NAME,:TT_NR,:TT_CODE,:TT_GROUP,...)

Esto me daparams.count=42 con parámetros con tipo de datos ftUnknown (por supuesto).

Luego llamo Preparar para la consulta.

Si ahora inspecciono un parámetro de fecha y hora conocido, veoparams[x].datatype = ftTimeStampnoftDateTime. Entonces, cuando la consulta vuelve a la base de datos para mirar los campos,no parece escuchar las reglas de mapeo de datos al configurar los parámetros.

¿Es esto un error?

En una etapa posterior de mi código, esto me metió en problemas, lo que resultó en el famoso error 338:

[FireDac][Phys][IB]-338 Param [TT_FROMDATE] type changed from [ftSQLTimeStamp] to [ftDateTime]. Query must be reprepared. 

Me las arreglé para evitar ese error, por lo que no es parte de la pregunta. Pero esperaría que los Parámetros siguieran también las reglas de mapeo de tipos de datos, eso habría hecho todo esto más fácil.

Respuestas a la pregunta(1)

Su respuesta a la pregunta