close

跟前一篇的 Datastore 類似,但有時候我們並不需要對 datastore 內的數據作改動,只要能取到值就可以了,那我們就可以使用 PB  內的 cursor。對比 datastore ,cursor 會使用到更少的資源,速度更快,也不必單純為了後台運算而多建一個 datawindow,也避開了別人以為沒用而誤把你的 Datawindow 刪掉或修改的風險。

// 定義變量
String     ls_student_id, ls_class
Integer    li_year

// 班級表
Create table student(
Year int,
Class int,
Student_id varchar(20),
Student_name varchar(20),
Join_date date
)


// 從 sql 語句定義 cursor
declare cur_student cursor for
Select year, class, student_id
From student
Where year = 2020
And class = '5B'
using sqlca;

// 打開並執行sql 語句
open cur_student;

// 取第一行,注意變量順序要跟前面的 sql 語句一致
Fetch cur_student into :li_year, :ls_class, :ls_student_id;
Do while sqlca.sqlcode = 0 // 有數據的話,sqlcode 就是「0」,沒有就是「100」
    // 各種運算
    …
    // 取下一行

    Fetch cur_student into :li_year, :ls_class, :ls_student_id;
Loop

// 關閉curosr
close cur_student;

arrow
arrow
    創作者介紹
    創作者 過時程式員 的頭像
    過時程式員

    過時程式員的部落格

    過時程式員 發表在 痞客邦 留言(0) 人氣()