close

Datastore 就是隠形的 Datawindow,大部份 Datawindow 的功能它都擁有,GetItem(), SetItem(), Sorting, Insert, Delete, Update它全都有。有時候會想把批量的數據取出來,然後逐條處理,這個時候就可以用上 Datastore 了。

 

比方說,把高中某班的學生取出來,再按學號到不同的表中取各科目的考試成績、課外活動記錄、各種奬項等等,匯總出來生成年度記錄或成績單,由於過程中用戶沒必要看到實際數據,只要看到進度和結果就可以了,這時候就可以把學生名單取到 datastore 中,再以 for loop把學號逐個取出來處理。

 

由於datastore 性質跟 Datawindow 一樣,為免被誤認為 Datawindow 而被隨意修改,所以命名上最好有所區別,我習慣是 Datawindow dw_studentdatastore 則是 ds_studentdatawindow 用於可視化的窗體上,datastore 就是單純用於數據處理,不必在乎格式或好不好看。

 

// 假設有個這樣的班級表

Create table student(

Year int,

Class int,

Student_id varchar(20),

Student_name varchar(20),

Join_date date

)

 

// 一個這樣的datawindow object - ds_list_student

Select year, class, student_id

From student

Where year = :ai_year

And class = :as_class

 

然後就可以在 PB 內這樣調用 datastore

 

// 定義 datastore

Datastore lds_student

 

lds_student = create datastore // 創建datastore

lds_student.dataobject = 'ds_list_student' // 放入 Datawindow object

lds_student.settransobject(SQLCA) // 指定 transaction object

lds_student.retrieve('2020','5B') // 取數據

 

最後就可以用for loop Getitemstring() student id 一個一個取出來作運算了。

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

    過時程式員的部落格

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