2012-02-20 40 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