VGLib.getVAGSysType

系统函数 VGLib.getVAGSysType 标识正在运行程序的目标系统。如果(在开发时)选择了程序属性 VAGCompatibility 或者(在生成时)将构建描述符选项 VAGCompatibility 设置为 yes,则支持此函数。

如果生成的输出是 Java™ 包装器,则 VGLib.getVAGSysType 不可用。否则,此函数返回 VisualAge® Generator EZESYS 特殊函数字已返回的字符值。如果当前系统不受 VisualAge Generator 支持,则此函数返回 sysVar.systemType 所返回的代码的大写等效字符串。


VGLib.getVAGSysType 语法图
result
一个字符串,它包含系统类型代码,如下表所示。

VGLib.getVAGSysType 返回 sysVar.systemType 的值的 VisualAge Generator 等效值。

sysVar.systemType 中的值 VGLib.getVAGSysType 返回的值
AIX® "AIX"
DEBUG "ITF"
ISERIESC "OS400"
ISERIESJ "OS400"
LINUX "LINUX"
USS "OS390"
WIN "WINNT"
只能将 VGLib.getVAGSysType 返回的值用作字符串;不能将返回的值与逻辑表达式中的操作数 isnot 配合使用(对于 sysVar.systemType,这是可以的):
  // valid ONLY for sysVar.systemType
  if sysVar.systemType is AIX
    call myProgram;
  end

只能将 VGLib.getVAGSysType 用作赋值或 move 语句中的源。

VGLib.getVAGSysType 的特征如下所示:
基本类型
CHAR
数据长度
8(用空格填充)
在转换之后是否始终将值恢复?

建议您使用 sysVar.systemType 而不是 VGLib.getVAGSysType

定义注意事项

VGLib.getVAGSysType 的值不影响在生成时验证的代码。例如,即使正在为 Windows® 进行生成,也验证以下 add 语句:
  mySystem CHAR(8);
  mySystem = VGLib.getVAGSysType();
  if (mySystem == "AIX")
    add myRecord;
  end
为了避免验证永远不会在目标系统中运行的代码,可以将不想验证的语句移至第二个程序;然后,让原始程序有条件地调用新程序:
  mySystem CHAR(8);
  mySystem = VGLib.getVAGSysType();

  if (mySystem == "AIX")
    call myAddProgram myRecord;
  end

也可以采用另一种方法来解决问题,但仅当使用 sysVar.systemType 而不是 VGLib.getVAGSysType 时该方法才可行;有关详细信息,请参阅 eliminateSystemDependentCode

使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.