2014-02-17 62 views
2

我是新開的,我試圖將最初的表導出爲xml文件。 我的最終目標是將三個表導出到xml文件。OpenEdge 102a將表導出到xml文件

我試圖導出一個簡單的分隔符和正在工作。 我試圖

  • 對於TXT

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

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

FOR XML我的東西只能從102B支持。這就是爲什麼我在使用WRITE-XML時出錯(Unable to understand after -- cGrSIRVATNBR:)。

我會很感激任何幫助。

+0

cGrSIRVATNBR實際上是一個表名嗎?或者它是一個包含表名的變量?如果它是一個表名,這是我見過的最奇怪的一個。如果它是表名,並且EXPORT示例中沒有錯誤,那可能意味着表中沒有數據。 –

+0

@TomBascom ttGrSIRVATNBR是實際的名稱。確實很奇怪,但它在我的業務邏輯中有意義:)。我有數據可以輸出。我也有改變我的代碼表的名字,但同一個狗屎不同的一天。 –

+0

如果上面的代碼是您實際正在運行的並且該表名稱中有數據,則EXPORT代碼段應該可以正常工作。 FWIW我通常將文件名用引號引起來,我會在FOR EACH上使用NO-LOCK - 但在語法上這應該不重要。 –

回答

3

也能正常工作對我來說:

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). 

你不能直接寫一個數據庫表到XML。您必須先將所需的記錄複製到臨時表中。

+0

我有錯誤從服務器「您不能定義內部過程中的TEMP表。」你在這個聲明中使用102a版本嗎? –

+0

最後,我將通過代碼創建我的xml並導出到文件。 Thx很多你的時間。 –

+0

我提供的樣本中沒有內部程序。 –