【问题标题】:Is there a way to use preprocessor directives in Progress-4GL?有没有办法在 Progress-4GL 中使用预处理器指令?
【发布时间】:2021-06-30 20:52:41
【问题描述】:

我正在使用 Progress-4GL,版本 11.6。

正如this other question 中所述,我现在使用动态查询,如下所示:

CREATE BUFFER h-Table1 FOR TABLE "Table1" NO-ERROR.
IF VALID-HANDLE(h-Table1)
...

我已将这段代码放在一个*.i 文件中,我将其包括为:

{incl\include_file.i}

我只想将此包含文件放在某些客户的系统中。但是,这会导致其他客户出现编译问题。

有没有办法说(C风格的预处理器):

#IF <condition>
#THEN {incl\include_file.i}

如果是,我可以在这样的预处理器指令中使用哪些条件?

提前致谢

【问题讨论】:

  • 哪些编译问题?您所展示的内容适合所有人。

标签: preprocessor openedge progress-4gl


【解决方案1】:

是的,请参阅documentation

&if <whatever> &then
   { incl/include_file.i }
&endif

您是否正在将源代码部署到客户的系统中?如果没有,那么预处理器将无法帮助您,因为它是作为compile 语句的一部分进行评估的。当您使用 preprocess 选项编译文件时,您可以看到预处理的结果,结果是您的源代码已评估所有预处理器。

【讨论】:

  • 我确实在我客户的系统上部署源代码。我刚刚检查了您提到的文档链接,但我没有找到我在这里寻找的条件:是否有一个预处理器指令能够验证数据库结构中是否存在某个表?
  • 不,您只能在运行时执行此操作。但是在启动/部署/每当你喜欢它时,你可以为数据库中的每个“有趣”表生成一个&amp;global-define,包括它并使用它。
猜你喜欢
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
  • 2014-06-19
  • 2013-06-06
  • 1970-01-01
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
相关资源
最近更新 更多