下面是文件访问示例:
try open record1 forUpdate; onException myErrorHandler(8); return; end try get next record1; onException myErrorHandler(12); return; end while (record1 not endOfFile) makeChanges(record1); // process the record try replace record1; onException myErrorHandler(16); return; end try get next record1; onException myErrorHandler(12); return; end end // end while sysLib.commit();
有关 get next 语句的详细信息取决于记录类型。有关 SQL 处理的详细信息,请参阅SQL 处理。
1, 2, 2, 2, 3, 4
下列每一个表都说明对同一带索引记录运行一系列 EGL 语句的效果。
EGL 语句(按顺序) | 带索引记录中的键 | 语句检索到的文件记录中的键 | EGL 错误值 |
---|---|---|---|
get | 2 | 2(三个中的第一个) | duplicate |
get next | 任何 | 2(第二个) | duplicate |
get next | 任何 | 2(第三个) | — |
get next | 任何 | 3 | — |
EGL 语句(按顺序) | 带索引记录中的键 | 语句检索到的文件记录中的键 | EGL 错误值 |
---|---|---|---|
set(具有 set record position 格式) | 2 | 不检索 | duplicate |
get next | 任何 | 2(三个中的第一个) | — |
get next | 任何 | 2(第二个) | duplicate |
get next | 任何 | 2(第三个) | — |
get next | 任何 | 3 | — |
当对 MQ 记录执行 get next 时,将把队列中的第一条记录读入 MQ 记录。进行这种安排的原因是 get next 调用了一个或多个 MQSeries® 调用:
建议避免在多个程序中同时打开同一个文件。
SQL FETCH 语句表示生成的代码中的 EGL get next 语句。生成的 SQL 语句的格式不能更改,但设置 INTO 子句除外。
最后,当指定 SQL COMMIT 或 sysLib.commit 时,代码保留 open 语句中声明的游标中的位置,但仅当在 open 语句中使用 hold 选项时才会如此。
相关概念
记录类型和属性
resultSetID
SQL 支持
相关任务
EGL 语句和命令的语法图