我已经编写了一个应用程序,允许用户创建和运行查询,然后将报告保存到文件中。他们可以在以后从文件中加载报告并在屏幕上查看。
我使用TADOQuery组件运行查询,并在查询返回数据时调用SaveToFile。然后,我使用LoadFromFile将数据加载回TADOQuery,从那里,我可以将数据读取到虚拟列表视图中。在这两种情况下,我都指定"pfXML“作为格式参数。
用户报告了一个问题,报告中的一个字段显示的是垃圾而不是可读文本。经过调查,他们的xml文档中该特定字段的字段定义被指定为"dt:type='bin.hex'“。当我在这里的系统上运行相同的查询时,xml文档中的字段定义被指定为"dt:type='string'“。
因此,我的问题是,为什么会有区别?数据库是相同的,那么为什么数据在用户的系统上保存为bin.hex,而在其他人的系统上保存为字符串呢?也许更重要的是,数据类型是如何确定的?当我调用SaveToFile时,TADOQuery组件如何知道数据类型是什么,以及它应该将什么作为数据类型写入xml文档?
是数据以十六进制格式发送回PC,TADOQuery组件从中得到提示,还是它(出于某种原因)认为该字段的数据类型是十六进制,并且它会根据需要更改数据?
我在网上找不到关于这件事的任何东西,我也不知道发生了什么,所以任何帮助都将不胜感激。
发布于 2010-06-04 00:00:03
这似乎与服务器的设置方式有关。我们只在一个客户站点和一个非常旧的OS400版本(查询运行在DB2数据库上)上遇到过这个问题。
发布于 2010-05-13 00:49:03
乍一看,听起来像是unicode/char编码。
https://stackoverflow.com/questions/2820344
复制相似问题