程序参数的语法图如下所示:
- dataItemName
- 数据项的名称。有关命名规则,请参阅命名约定。
- primitiveType
- 数据项的基本类型或者(对于动态数组)数组元素的基本类型。
- length
- 参数的长度或者(对于动态数组)数组元素的长度。此长度是一个整数,它表示由 dataItemName 或(对于动态数组元素)dynamicArrayName 引用的内存区域中的字符或数字的数量。
- decimals
- 对于某些数字类型,可以指定 decimals,它是用来表示小数点后的位数的整数。最大小数位数是以下两个数字中较小的那一个:18 或声明为 length 的位数。小数点不与数据存储在一起。
- "dateTimeMask"
- 对于类型为 TIMESTAMP 和 INTERVAL 的项,可指定“dateTimeMask”,它会赋予项值中的给定位置特别的意义(如“年份位”)。掩码不会与数据存储在一起。
- dataItemPartName
- 对程序可见的 dataItem 部件的名称。有关可视性的详细信息,请参阅对部件的引用。
该部件作为格式模型,如 Typedef 所述。
- formPartName
- 表单的名称。
必须能够通过在程序的其中一个使用声明中标识的表单组来访问该表单。不能将作为参数访问的表单显示给用户,但它可以提供对从另一个程序传递的字段值的访问。
有关命名规则,请参阅命名约定。
- recordName
- 记录的名称。有关命名规则,请参阅命名约定。
- recordPartName
- 对程序可见的记录部件的名称。有关可视性的详细信息,请参阅对部件的引用。
该部件作为格式模型,如 Typedef 所述。
- dynamicArrayName
- 记录动态数组或数据项动态数组的名称。如果使用此选项,则右边的其它符号(dataItemPartName 和 primitiveType 等等)是指数组的每个元素。有关命名规则,请参阅命名约定。
下列语句适用于对记录参数进行的输入或输出(I/O):
- 从另一程序传递的记录不包括记录状态,如 I/O 错误值 endOfFile。同样,不会将记录状态的任何更改返回给调用程序,所以,如果对记录参数执行 I/O,则对该记录执行的任何测试都必须在程序结束前进行。
- 对记录执行的任何 I/O 操作都使用对参数指定的记录属性而不是对自变量指定的记录属性。
- 对于 indexedRecord、mqRecord、relativeRecord 或 serialRecord 类型的记录,与记录声明相关联的文件或消息队列被视为运行单元资源而不是程序资源。每当记录属性 fileName(或 queueName)具有相同的值时,本地记录声明就共享同一个文件(或队列)。无论在运行单元中有多少个记录与文件或队列相关联,每次都仅有一个物理文件可以与文件或队列名相关联,并且,EGL 在适当情况下可以通过关闭并重新打开文件来确保此规则的实施。