演習 8 : データ入力と検索のオブジェクト・バージョン
-
以下は mydatentobj の新規 store プロシージャです。
store() [name, phone, intdob] ; store the data { read !, "Store? (y/n): ", yn ; see if user wants to store if ( yn '= "y" ) { ; only go on if user says yes write "...not stored." quit } set per = ##class(CosTutorial.Person).%New() ; create a new person set per.Name = name set per.Phone = phone set per.DOB = intdob do per.%Save() ; store the record, in a transaction, ; including storage in indices! set per = "" ; release the person write "...stored" ; done }
-
以下は mylookupobj の新規 load プロシージャです。
load(id) [name, phone, intdob] ; load a person into local variables { set per = ##class(CosTutorial.Person).%OpenId(id) set name = per.Name set phone = per.Phone set intdob = per.DOB set per = "" }
-
以下は mylookupobj の新規 update プロシージャです。
update(id) [newname, newphone, newintdob] ; update ^PersonD and ^PersonI { set per = ##class(CosTutorial.Person).%OpenId(id) set per.Name = newname set per.Phone = newphone set per.DOB = newintdob do per.%Save() ; this updates indices too, ; all within a transaction! set per = "" write "...updated." }
-
この行を変更して、mylookupobj の phone プロシージャを更新します。
set ph = $order( ^PersonI("Phone", ph), 1, loopid)
以下のとおり変更します。
set ph = $order( ^PersonI("Phone", ph)) set:( ph '= "") loopid = $order( ^PersonI("Phone", ph, ""))