1

我编写了一个应用程序,允许用户创建和运行查询,然后将报告保存到文件中。他们可以在以后从文件中加载报告并在屏幕上查看。

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

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

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

是数据以十六进制格式发送回 PC,TADOQuery 组件从中得到提示,还是(出于某种原因)认为该字段的数据类型是十六进制并且它更改了数据适合?

我在网上找不到任何关于此的信息,也无法弄清楚发生了什么,因此我们将不胜感激。

4

2 回答 2

0

乍一看,对我来说听起来像是 unicode/char 编码。

于 2010-05-12T16:49:03.417 回答
0

这似乎与服务器的设置方式有关。我们只在一个客户站点和一个非常旧的 OS400 版本(查询在 DB2 数据库上运行)遇到了问题。

于 2010-06-03T16:00:02.997 回答