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)

现在我需要为此查询创建一个临时表。如何创作?

如果我使用类似创建的方法,我应该传入什么值?

4

1 回答 1

2

要在运行时动态创建临时表,您需要所述表的缓冲区的句柄或表名本身。看到您已经拥有“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").

希望有帮助!

于 2012-02-20T08:11:11.687 回答