如何使用动态查询创建临时表


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

希望对您有所帮助!

相关内容

  • 没有找到相关文章

最新更新