Cachéデータベース作業のまとめ
15816 ワード
$zcvt変換関数--フルネーム($ZCONVERT)
//wをCに変換
w $zcvt("www.wocao.com","C")
s:$zcvt(type,"U")="Q"
XECUTE動的実行式
例1
動的に一言印刷
//wをCに変換
w $zcvt("www.wocao.com","C")
s:$zcvt(type,"U")="Q"
XECUTE動的実行式
例1
動的に一言印刷
XECUTE ("WRITE ""hello world"",!")
例2:
1>3式を実行して結果を取得
(data)s data="式",data-"は式の値を取得してdataに与えることを意味する.dataは、式の実行を返す必要がある結果です.
XECUTE ("(data) s data="_1_>_3,.data)
例3:
in入力値+3をoutに付与SET x=1 XECUTE ("(in,out) { SET x=in+3 SET out=x }",x,.y) WRITE x ; the value of x is 1 : class XECUTE ("(data) s data=##class("_clazzName_"List).%New()",.data) Cache // i action = $zcvt("GetAvgDay", "U") { // Body -- s str= msg.body.Read() // s DataSources = $p(str,"^",1) s code = $p(str,"^",2) s value = $p(str,"^",3) // sql s sql="{call ODS_query_day(?)}" // i# :i ,# //i# i ii # " s procrp =..Adapter.ExecuteProcedure(.rs,.pvalues,sql,"i#",value) // SQL if $$$ISERR(procrp) { s rtnMsg.header.result="False" s rtnMsg.header.reason=##class(%SYSTEM.Status).GetErrorText(procrp) d rtnMsg.XMLExportToStream(.mess,"Message") d pResponse.mess.CopyFrom(mess) Quit $$$OK } // if $IsObject(rs) { s rstable=rs.GetAt(1)// d rstable.Rewind()// while(rstable.Next()){ s brxm=rstable.Get(" ") s brxb=rstable.Get(" ") s brnl=rstable.Get(" ") s ryrq=rstable.Get(" ") s dqsj=rstable.Get(" ") s zyh=rstable.Get(" ") s ysxm=rstable.Get(" ") s ksmc=rstable.Get(" ") s bch=rstable.Get(" ") s yzyts=rstable.Get(" ") s zfy=rstable.Get(" ") // global s ^MonitorResult(value,zyh)=brxm_"^"_brxb_"^"_brnl_"^"_zyh_"^"_ysxm_"^"_ksmc_"^"_bch_"^"_ryrq_"^"_dqsj_"^"_yzyts_"^"_zfy } }else { d ..ExecLog(sql, "", "0") } s rtnMsg.header.result="True" s rtnMsg.header.reason="" d pResponse.mess.CopyFrom(##class(%GlobalCharacterStream).%New()) Quit $$$OK }