EGL get previous 语句读取关系数据库结果集中的上一行或文件中的上一个记录,该文件与指定 EGL 的带索引记录相关联。
仅当在相关 open 语句中指定了 scroll 选项时,才能对关系数据库结果集使用此语句。
下面是带索引记录的示例:
record1.hexKey = "FF"; set record1 position; try get previous record1; onException myErrorHandler(8); return; end while (record1 not endOfFile) processRecord(record1); // handle the data try get previous record1; onException myErrorHandler(8); return; end end
有关 get previous 的详细信息取决于您是否在使用带索引记录或是否与SQL 处理有关。
1, 2, 2, 2, 3, 4
下列各表举例说明了对同一个带索引记录运行一连串 EGL 语句的作用。
EGL 语句(按顺序) | 带索引记录中的键 | 语句检索到的文件记录中的键 | COBOL 的 EGL 错误值 |
---|---|---|---|
set(具有 set record position 格式) | 1 | -- | -- |
get previous | 任何 | 1 | -- |
EGL 语句(按顺序) | 带索引记录中的键 | 语句检索到的文件记录中的键 | EGL 错误值 |
---|---|---|---|
get | 3 | 3 | — |
get previous | 任何 | 2(三个中的第一个) | duplicate |
get previous | 任何 | 2(第二个) | duplicate |
get previous | 任何 | 2(第三个) | — |
get previous | 任何 | 1 | — |
EGL 语句(按顺序) | 带索引记录中的键 | 语句检索到的文件记录中的键 | EGL 错误值 |
---|---|---|---|
set(具有 set record position 格式) | 2 | — | duplicate |
get next | 任何 | 2(第一个) | — |
get next | 任何 | 2(第二个) | duplicate |
get previous | 任何 | 1 | — |
get previous | 任何 | -- | endOfFile |
EGL 语句(按顺序) | 带索引记录中的键 | 语句检索到的文件记录中的键 | EGL 错误值 |
---|---|---|---|
set(具有 set record position 格式) | 1 | -- | -- |
get previous | 任何 | 1 | -- |
SQL FETCH 语句表示生成的代码中的 EGL get previous 语句。生成的 SQL 语句的格式不能更改,但设置 INTO 子句除外。
一般来说,如果发生了错误并且处理继续进行,游标将保持打开状态,并且游标位置保持不变。
最后,当指定 SQL COMMIT 或 sysLib.commit 时,代码保留 open 语句中声明的游标中的位置,但仅当在 open 语句中使用 hold 选项时才会如此。
相关概念
记录类型和属性
相关任务
语法图