Description
A umas semanas percebi um grande problema no meu projeto. Ocorre que, na base de dados da empresa em que trabalho, existem cambos BLOB subtype BINARY que são usados como TEXT. Até ai tudo bem, pois no fim das contas a funcionalidade acaba sendo a mesma. Não temos problema nesse sentido. No entanto, ao usar o DataSet Serialize, reparei que cargas de JSON para Dataset usando métodos como o LoadFromJson e MergeFromJson faziam com que o texto contido na chave respectiva ao campo Blob Binary ficasse totalmente ou parcialmente desconfiguradas. Vasculhei os fontes do componente e encontrei a propriedade "DecodeBase64BlobField" como uma das disponíveis para se fazer a configuração como desejar usando o TDataSetSerializeConfig. Porém, apenas seta-la como false não resolveu, ficou faltando o "Encode". Reparei que não havia a opção de fazer a configuração pelo TDataSetSerializeConfig do "EncodeBase64BlobField" assim como existe com o Decode. Sendo assim fui obrigado a setar como false no Create do TDataSetSerialize na unit "DataSet.Serialize.Export". Fazendo isso meu problema foi resolvido. Dessa forma, cambos Blob do tipo binary ficam com o mesmo comportamento de campos Blob Text. Para o meu uso ficou ótimo. Gostaria de sugerir que seja possível fazer a configuração do EncodeBase64 assim como existe para o DecodeBase64. Caso contrário sempre que eu for atualizar o componente vou precisar lembrar de ir nos fontes e setar uma única property como false para que eu não tenha problema nos campos blob.