As regras de mapeamento FireDAC não se aplicam aos parâmetros?

eu tenho umTFDConnection para um banco de dados FireBird ao qual eu aplicoMapeamento de tipo de dados para compatibilidade com versões anteriores com uma tecnologia anterior de acesso a dados (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;

Em tempo de execução, crio um TFDQuery que vinculo a esse TFDConnection.
Eu posso ver que ele herda as regras de mapeamento:FormatOptions.MapRules.count=2

Atribuo uma consulta INSERT ao seu 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,...)

Isso me dáparams.count=42 com parâmetros com o tipo de dados ftUnknown (é claro).

Depois, chamo Preparar para a consulta.

Se agora eu inspecionar um parâmetro conhecido datetime, vejoparams[x].datatype = ftTimeStamp, nãoftDateTime. Portanto, quando a consulta retorna ao banco de dados para examinar os campos,parece não ouvir as regras de mapeamento de dados ao configurar os parâmetros.

Isso é um inseto?

Em um estágio posterior do meu código, isso me causou problemas, resultando no famoso erro 338:

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

Consegui contornar esse erro, de modo que isso não faz parte da pergunta. Mas eu esperaria que o Params também seguisse as regras de mapeamento de tipos de dados, o que tornaria tudo isso mais fácil.

questionAnswers(1)

yourAnswerToTheQuestion