gpt4 book ai didi

xml - Delphi TADOQuery loadFromFile 错误 : "The character ' <' cannot be used in an attribute value"

转载 作者:行者123 更新时间:2023-12-03 19:45:14 24 4
gpt4 key购买 nike

我有一个 Delphi 2009 应用程序,它使用 TADOQuery 组件在数据库上运行查询。当查询返回数据时,我调用 TADOQuery 的 saveToFile 过程,指定“pfXML”作为格式参数,这显然将数据保存到 XML 文档。这工作正常。

要查看数据,我有一个包含虚拟 ListView 的屏幕。我在这个屏幕上使用另一个 TADOQuery 组件并调用 loadFromFile 过程从 XML 文档中读取数据。然后我可以使用 TADOQuery 的“fieldByName”函数在虚拟 ListView 中显示数据。再一次,这很好用——或者至少,在过去的几个月里它一直很好用。

我今天遇到了一个错误,我运行了某个查询,当我尝试打开报告时,我收到一个错误:“字符'<'不能用于属性值”。我相信这是一个 XML 错误,但我无法找到原因。

我使用 Delphi 的调试器查看错误出现的位置,引发异常的行是检索 TADOQuery 的记录计数(即 adoquery.recordCount)的行。如果我通过代码中的断点将鼠标悬停在 .recordCount 调用上,工具提示会显示“Delphi exception at $1286F945”。

就像我说的,这几个月来一直运行良好,现在突然出现了这个错误。显然,返回的数据中有一些东西导致了问题,但我不知道是什么。我已经扫描了 XML 文档,其中没有不属于标记的“<”字符。

最后,为了抢占任何想要回应“你为什么这样做?你应该这样做......”评论的人,应用程序的要求之一是应用程序必须允许用户运行查询并将其保存以供以后离线查看,因此调用了 saveToFile/loadToFile。

最佳答案

在花了一上午的时间调试应用程序后,我发现问题是由垃圾数据引起的,导致关闭标记 (>) 被遗漏在文件中的一个字符串的末尾。

关于xml - Delphi TADOQuery loadFromFile 错误 : "The character ' <' cannot be used in an attribute value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2424258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com