2012-02-20 78 views
0
CREATE QUERY ohQuery. 
ohQuery:SET-BUFFERS(hBuffer). 

OhQuery:QUERY-PREPARE("FOR EACH " + ip-tablename). 
ohQuery:QUERY-OPEN(). 
ohQuery:GET-FIRST(). 

ip-tablename = value from UI (combo box) 

現在我需要爲此查詢創建一個臨時表。如何創建?如何使用動態查詢創建臨時表

如果我使用類似create-create的方法,我應該傳遞什麼值?

回答

1

要在運行時動態創建臨時表,您需要一個該表的緩衝區句柄或表名本身。看到你已經有'ip-tablename'緩衝區的句柄(我假設hBuffer是名爲'ip-tablename'的表的緩衝區,否則你的上面的語句將不起作用),你應該使用那個句柄而不是因爲性能方面的原因而「僅」表名。以下是如何做到這一點:

DEF VAR ttH AS HANDLE NO-UNDO. 
ttH:CREATE-LIKE(hBuffer). 

或者,您也可以使用「IP-的tablename」爲類似創建方法,雖然它不執行,以及:

ttH:CREATE-LIKE(ip-tablename). 

不要忘記你需要使用臨時表的編制方法之前,你可以使用你的新的臨時表:

ttH:TEMP-TABLE-PREPARE("myNewTempTable"). 

希望幫助!

+0

這是工作......感謝您的回覆。如果我想將這個臨時表中的值放到一個csv文件中,我需要做什麼?當我使用OUTPUT TO'd:\ report.txt'時。 對於每個tmytable: export tmytable。 結束。它不工作 – 2012-02-20 09:58:32