【问题标题】:TClientDataset: 'Fieldtype not supported for XML.'TClientDataset: 'XML 不支持字段类型。'
【发布时间】:2025-12-21 14:40:09
【问题描述】:

我将一堆数据加载到 TClientDataset 中,表示一组复杂对象。但是当我尝试运行时

Dataset.SaveToFile('c:\test.xml', dfXMLUTF8);

它不喜欢它:

项目 testing.exe 引发异常类 EDBClient 并带有消息“XML 不支持字段类型。”。

这比它应该的用处要小得多,原因有两个。首先,它没有说明不支持哪个字段或哪个字段类型,其次,实际保存是在黑盒 DLL 中进行的。

我在这个数据集中使用的唯一字段类型是整数、字符串、布尔值和一些包含整数字段数组的 TArrayField。没有什么我期望序列化那么困难。有人知道为什么这不起作用吗?

【问题讨论】:

  • 去掉数组还能用吗?

标签: delphi xml-serialization dataset client-dataset


【解决方案1】:

是全部保存还是只保存了一些字段?也许例如 TArrayFields 正在引发异常?尝试逐个删除不同的字段类型,看看什么时候开始工作。

【讨论】:

    【解决方案2】:

    猜测是 XML 导出不支持数组字段, 但你应该检查一下。

    转到项目选项->编译器并打开“使用调试 DCU”。重建。

    在 SaveToFile() 调用上设置断点。运行。

    然后您可以进入 VCL 源并尝试寻找不支持的内容。

    【讨论】:

    • 调试 DCU 已开启。但是,他们无法追踪对 midas.dll 的调用。