现场解码(功能代码4)
您需要提供字段解码操作所需的输入和输出。
进入时
| 注册 | 包含 |
|---|---|
| 1 | 现场程序参数列表(FPPL)的地址;请参见图1 的示意图。 |
| 2到12 | 退出时必须恢复的未知值。 |
| 13 | 注册保存区的地址。 |
| 14 | 回邮地址。 |
| 15 | 退出例程的入口地址。 |
所有其他登记册的内容以及未列出的字段都是不可预测的。
工作区是连续的、未初始化的,其长度由字段定义期间的字段过程指定。
FPIB 有以下信息:
| 字段 | 包含 |
|---|---|
| FPBFCODE | 4、功能代码 |
| FPBWKLN | 工作区域的长度 |
CVD 包含以下信息:
| 字段 | 包含 |
|---|---|
| FPVDTYPE | 列值数据类型的数字代码,如表1 所示。 |
| FPVDVLEN | 列值的列长度。 |
| FPVDVALE | 列值。 如果该值是一个长度可变的字符串,则第一个半字包含其长度。 |
FVD 包含以下信息:
| 字段 | 包含 |
|---|---|
| FPVDTYPE | 字段值数据类型的数字代码。 |
| FPVDVLEN | 字段值的值的长度。 |
| FPVDVALE | 现场价值。 如果该值是一个长度可变的字符串,则第一个半字包含其长度。 |
提供了在野外定义过程中通过野外程序生成的修改后的 FPPVL。
出口
登记簿中包含以下信息:
| 注册 | 包含 |
|---|---|
| 2到12 | 他们进入时所包含的价值观。 |
| 15 | 如果FVD中描述的列对字段过程有效,则为整数0;否则,该值不能为零。 |
CVD 必须在FPVDVALE字段中包含已解码的(列)值。 如果该值是一个长度可变的字符串,则前半个单词必须包含其长度。
FPIB 可以包含以下信息:
| 字段 | 包含 |
|---|---|
| FPBRTNC | 可选的2字节字符返回代码,由字段过程定义;如果没有返回代码,则留空。 |
| FPBRSNC | 可选的4字节字符原因代码,由字段程序定义;如果没有给出原因代码,则留空。 |
| FPBTOKP | 可选地,工作区或现场程序的静态区域中40字节错误消息的地址;如果没有消息,则返回0。 |
字段程序发出的错误信号导致SQLCODE -681 (SQLSTATE '23507'),该信号在SQL通信区域(SQLCA)中设置。 FPBRTNC和FPBRSNC的内容以及FPBTOKP指向的错误消息也作为字段SQLERRMT放入SQLCA的标记中。 错误消息的含义由字段过程决定。
所有其他字段必须保持与输入时相同。