游标和预编译语句

游标和预编译语句的作用域限定为编译单元以及连接。

对编译单元的作用域限定意味着从另一个单独编译的程序调用的程序不能使用由调用程序打开或准备的游标或预编译语句。 对连接进行作用域限定意味着程序中的每个连接都可以有它自己的游标或预编译语句的单独实例。

以下分布式工作单元示例显示如何在两个不同连接中打开同一游标名称,从而生成两个游标 C1实例。

图 1。 DUW 程序中的游标示例
    ...
     EXEC SQL DECLARE C1 CURSOR FOR
                 SELECT * FROM CORPDATA.EMPLOYEE;
     /* Connect to local and open C1 */
     EXEC SQL CONNECT TO LOCALSYS;
     EXEC SQL OPEN C1;
     /* Connect to the remote system and open C1 */
     EXEC SQL CONNECT TO SYSA;
     EXEC SQL OPEN C1;
     /* Keep processing until done */
     while (NOT_DONE) {
        /* Fetch a row of data from the local system */
        EXEC SQL SET CONNECTION LOCALSYS;
        EXEC SQL FETCH C1 INTO :local_emp_struct;
        /* Fetch a row of data from the remote system */
        EXEC SQL SET CONNECTION SYSA;
        EXEC SQL FETCH C1 INTO :rmt_emp_struct;
        /* Process the data */
        ...
     }
     /* Close the cursor on the remote system */
     EXEC SQL CLOSE C1;
     /* Close the cursor on the local system */
     EXEC SQL SET CONNECTION LOCALSYS;
     EXEC SQL CLOSE C1;
     ...