【问题标题】:OpenEdge 102a export table to xml fileOpenEdge 102a 将表导出到 xml 文件
【发布时间】:2014-02-18 22:05:57
【问题描述】:

我是 opensge 的新手,我最初尝试将表导出到 xml 文件。 我的最终目标是将三个表导出到 xml 文件。

我尝试以简单的分隔符导出并且正在工作。 我试过了

  • 对于 txt

        OUTPUT TO c:\temp\file.txt.
          FOR EACH cGrSIRVATNBR:
            EXPORT DELIMITER ";" cGrSIRVATNBR.
          END.
        OUTPUT CLOSE.   
    
  • 对于 xml

       cGrSIRVATNBR:WRITE-XML("FILE","c:\temp\tt.xml", TRUE).
    

对于 xml 我的东西只支持从 102b。这就是为什么我在使用WRITE-XML 时出错(Unable to understand after -- cGrSIRVATNBR:)。

我将不胜感激。

【问题讨论】:

  • cGrSIRVATNBR 实际上是表名吗?或者它是一个包含表名的变量?如果它是一个表名,它是我见过的最奇怪的名称之一。如果它是一个表名,并且 EXPORT 示例中没有错误,则可能意味着该表中没有数据。
  • @TomBascom ttGrSIRVATNBR 是实际名称。确实很奇怪,但它在我的业务逻辑中有意义:)。我肯定有要导出的数据。我也将代码更改为表名,但同一天不同。
  • 如果上面的代码是您实际运行的代码并且表中有具有该名称的数据,则 EXPORT sn-p 应该可以正常工作。 FWIW 我通常将文件名括在引号中,并且我会在 FOR EACH 上使用 NO-LOCK ——但从语法上讲,这并不重要。
  • @TomBascom 你说得对,导出的文件在服务器中正常,而不是在我的电脑中!!!!无论如何,我会稍微改变一下我的问题,但挑战是从表中创建 xml。
  • 您在尝试使用 10.2A 写入 XML 时提到了一个错误。该错误的文本是什么?

标签: progress-4gl openedge


【解决方案1】:

这对我来说很好用:

define temp-table ttCust no-undo like customer.

for each customer no-lock where custNum = 1:
  create ttCust.
  buffer-copy customer to ttCust.
end.

temp-table ttCust:write-xml( "file", "cust.xml", true ).

您不能直接将 db 表写入 XML。您必须先将所需的记录复制到临时表中。

【讨论】:

  • 我收到来自服务器的错误“您无法在内部过程中定义 TEMP-TABLE。”您在此声明中使用的是 102a 版本吗?
  • 最后我将通过代码创建我的 xml 并导出到文件。非常感谢您的时间。
  • 我提供的示例中没有内部程序。
  • 在 .p 文件中,我创建了我的 .net api 调用它的 o proc。但没关系,我通过字符串连接成功了我的目标。作为 .net 开发人员,我遇到了一些问题,但它运行良好:)。再次感谢您的时间。
  • 感谢我抽出时间可能需要将答案标记为正确,甚至可能投赞成票。此外,如果您发布您收到的实际错误消息,将来会省去很多猜测。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-16
  • 1970-01-01
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
相关资源
最近更新 更多