xml - 如何将数据库查询的行转换为 XML 文件?

标签 xml database delphi delphi-xe2

我正在开发一个 Delphi 应用程序,它需要从一段时间的工作中提取行并将它们转换为单个 XML 文件,以便上传到第 3 方网络服务。

是否有任何组件或库可用于执行此操作?如果不是,构建该 DB2XML 转换器的最佳代码方法是什么?

我注意到大多数 XML 问题都是关于如何将其转换为另一种类型的数据。

注意:数据库将是 MySQL 或 Firebird。

最佳答案

您可以使用 TDataSetProvider组件填充 TClientDataSet使用 TDataSet 内容,然后使用 SaveToFile创建 xml 文件的方法。

试试这个例子

procedure DataSetToXML(DataSet  : TDataSet; const FileName:string);
var
 LProvider : TDataSetProvider;
 LClient   : TClientDataSet;
begin
   LProvider:=TDataSetProvider.Create(nil);
   try
     LProvider.DataSet:=DataSet;
     LClient:=TClientDataSet.Create(nil);
     try
       DataSet.DisableControls;
       try
        if not DataSet.Active then
          DataSet.Active:=True;
        LClient.SetProvider(LProvider);
        LClient.Active:=True;
        LClient.SaveToFile(FileName, dfXMLUTF8);
       finally
         DataSet.EnableControls;
       end;
     finally
       LClient.Free;
     end;
   finally
     LProvider.Free;
   end;
end;

关于xml - 如何将数据库查询的行转换为 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12150775/

相关文章:

java - JAXB 将 XML 元素解码到 HashMap

database - 我们可以在 DB 中添加一列而不将其添加到 hibernate 对象吗?

database - 有条件地从 postgres 数据库中删除重复项

delphi - 将应用程序从 FIB+ 迁移到 Fire-DAC 组件的经过验证/推荐的方法

mysql - 如何在Delphi中打乱记录表?

c# - 什么是 VS2013 中的 LinqToXsdSchema 构建操作?

xml - Delphi XML (MSXML) 例程的二次运行时

delphi - 如何暂时禁用 "return value might be undefined"警告?

python - Python 的 doctest 输出可以被 Bamboo 的 JUnit 解析器解析吗?

java - 我可以使用像 ApacheDS 这样的 LDAP 服务器作为桌面应用程序的持久性解决方案吗?