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)
现在我需要为此查询创建一个临时表。如何创作?
如果我使用类似创建的方法,我应该传递什么值?
要在运行时动态创建临时表,您需要该表的缓冲区的句柄或表名本身。鉴于您已经拥有"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").
希望对您有所帮助!