Pergunta

Escrevi um aplicativo que permita que um usuário crie e execute uma consulta e, em seguida, salve o relatório para arquivar. Eles podem carregar o relatório do arquivo posteriormente e visualizar na tela.

Eu uso um componente do TadoQuery para executar a consulta e ligo para o SavetoFile quando a consulta tiver retornado dados. Em seguida, uso o loadfromfile para carregar os dados em um tadoQuery e, a partir daí, posso ler os dados em um Virtual ListView. Nos dois casos, estou especificando "pfxml" como o parâmetro de formato.

Um usuário relatou um problema pelo qual um dos campos do relatório está exibindo lixo em vez de texto legível. Após a investigação, a definição de campo em seu documento XML para esse campo específico é especificado como "dt: type = 'bin.hex'". Quando executo a mesma consulta em um sistema aqui, a definição de campo no meu documento XML é especificada como "dt: type = 'string'".

Minha pergunta é, portanto, por que há uma diferença? Os bancos de dados são idênticos, então por que os dados estão sendo salvos como bin.hex no sistema do usuário e como uma string na de todos os outros? Talvez mais direto ao ponto, como o tipo de dados é determinado? Quando chamo SavetoFile, como o componente do TadoQuery sabe qual é o tipo de dados e o que deve escrever no documento XML como o tipo de dados?

É que os dados estão sendo enviados de volta ao PC em formato hexadecimal, e o componente de TadoQuery está tirando sua sugestão disso, ou isso (por algum motivo) pensa que o tipo de dados para esse campo é hexadecimal e altera os dados para se adequar?

Não consigo encontrar nada online sobre isso e não consigo descobrir o que está acontecendo, então qualquer ajuda seria apreciada.

Foi útil?

Solução 2

Parece que isso tem algo a ver com a forma como o servidor está configurado. Só tivemos o problema em um site de clientes e em uma versão muito antiga do OS400 (as consultas executadas nos bancos de dados DB2).

Outras dicas

À 1ª olhada, parece um unicode/char codificando para mim.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top