我编写了一个允许用户创建和运行查询的应用程序,然后将报告保存到文件中。他们可以在以后从文件加载报告并在屏幕上查看。
我使用TADOQuery组件来运行查询,并在查询返回数据时调用SaveToFile。然后我使用LoadFromFile将数据加载回TADOQuery,然后我可以将数据读入虚拟列表视图。在这两种情况下,我都将“pfXML”指定为格式参数。
用户报告了一个问题,即报告中的某个字段显示垃圾而不是可读文本。经过调查,该特定字段的xml文档中的字段定义被指定为“dt:type ='bin.hex'”。当我在这里对系统运行相同的查询时,我的xml文档中的字段定义被指定为“dt:type ='string'”。
我的问题是,为什么会有区别?数据库是相同的,那么为什么数据在用户的系统上保存为bin.hex,而在其他人的系统中保存为字符串?也许更重要的是,数据类型是如何确定的?当我调用SaveToFile时,TADOQuery组件如何知道数据类型是什么,以及它应该将什么写入xml文档作为数据类型?
是否以十六进制格式将数据发送回PC,并且TADOQuery组件正在从中获取提示,或者(由于某种原因)认为该字段的数据类型是十六进制并且它改变数据以适应?
我在网上找不到任何关于此的内容,我无法弄清楚发生了什么,所以任何帮助都会受到赞赏。
答案 0 :(得分:0)
乍一看,听起来像是unicode / char编码。
答案 1 :(得分:0)
这似乎与服务器的设置方式有关。我们在一个客户站点和一个非常旧版本的OS400上遇到了问题(查询在DB2数据库上运行)。