我有一个应用程序,它允许用户使用 TADOQuery 组件在远程数据库上运行查询。然后使用 TADOQuery 的 SaveToFile 方法将查询结果保存到 XML 文件中。
我最近遇到了一个问题,如果其中一个字段中存在换行符(十六进制“0A”),则该字段中的数据将被截断(即仅部分保存到文件中)。字段中的空字符会导致类似的问题。
我需要做的是在调用 SaveToFile 方法之前扫描有问题的字段,并将任何“问题”字符替换为其他字符(例如空格)。我不允许更新数据库中的数据,所以我不能将任何更改推送回数据库(这意味着 TADOQuery 不能处于编辑模式)。
有什么方法可以实现这一点(即在运行 SELECT 之后但在调用 SaveToFile 之前编辑字段而不更改数据库中的数据)?我有一个解决方法,但它相当冗长且效率低下,但它允许我在不接触服务器上的数据的情况下编辑 XML 文档(基本上,读取问题字段,进行更改并存储更新版本的临时文件中的字段,调用 SaveToFile,然后用更新的版本替换 XML 文档中的字段)。这是我最好的选择,还是有更好的方法?