2010-05-12 136 views
1

我已经编写了一个应用程序,允许用户创建并运行查询,然后将报告保存到文件。他们可以在稍后的日期从文件加载报告并在屏幕上查看。Delphi TADOQuery SaveToFile问题

我使用TADOQuery组件运行查询,并在查询返回数据时调用SaveToFile。然后我使用LoadFromFile将数据加载回TADOQuery,然后从那里读取数据到虚拟列表视图中。在这两种情况下,我都将“pfXML”指定为格式参数。

用户报告了一个问题,报告中的一个字段显示垃圾而不是可读文本。经过调查,其xml文档中针对该特定字段的字段定义被指定为“dt:type ='bin.hex'”。当我在这里的系统上运行相同的查询时,我的xml文档中的字段定义被指定为“dt:type ='string'”。

我的问题是为什么有区别?数据库是相同的,那么为什么数据在用户的系统上以bin.hex的形式保存,并且在其他人的系统上以字符串的形式保存?也许更重要的是,数据类型是如何确定的?当我调用SaveToFile时,TADOQuery组件如何知道数据类型是什么以及它应该将什么作为数据类型写入xml文档?

数据是以十六进制格式发送回PC,而TADOQuery组件正在从中提取它的提示,或者它(出于某种原因)认为该字段的数据类型是十六进制的,并且它会更改数据以适应?

我在网上找不到任何关于此事的信息,而且我无法弄清楚发生了什么事情,所以任何帮助都将不胜感激。

回答

0

看来这与服务器的设置有关。我们在一个客户站点和OS400的旧版本(查询运行在DB2数据库上)上只有问题。

0

乍一看,听起来像一个Unicode /字符编码给我。