Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

演習 8 : データ入力と検索のオブジェクト・バージョン

  1. 以下は 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
        }
  2. 以下は 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 = ""
         }
  3. 以下は 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."
        }
  4. この行を変更して、mylookupobjphone プロシージャを更新します。

        set ph = $order( ^PersonI("Phone", ph), 1, loopid)
    

    以下のとおり変更します。

        set ph = $order( ^PersonI("Phone", ph))
        set:( ph '= "") loopid = $order( ^PersonI("Phone", ph, ""))
    
FeedbackOpens in a new tab