Cachéデータベース作業のまとめ

15816 ワード

$zcvt変換関数--フルネーム($ZCONVERT)
//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      
//       
action = $zcvt("GetAvgDay", "U")
{
//    Body    --            
str= msg.body.Read()
//             
DataSources = $p(str,"^",1)
code = $p(str,"^",2)
value = $p(str,"^",3)


//      sql  
sql="{call ODS_query_day(?)}"	



//  i#    :i         ,#     
//i# i     ii      #    "
procrp =..Adapter.ExecuteProcedure(.rs,.pvalues,sql,"i#",value)

//  SQL         
if $$$ISERR(procrp) {
rtnMsg.header.result="False"
rtnMsg.header.reason=##class(%SYSTEM.Status).GetErrorText(procrp)
rtnMsg.XMLExportToStream(.mess,"Message")
    pResponse.mess.CopyFrom(mess)
Quit $$$OK
}
//     
if $IsObject(rs) {
rstable=rs.GetAt(1)//         
rstable.Rewind()//     
while(rstable.Next()){
 brxm=rstable.Get("    ")
  brxb=rstable.Get("    ")
  brnl=rstable.Get("    ")
  ryrq=rstable.Get("    ")
  dqsj=rstable.Get("    ")
  zyh=rstable.Get("   ")
  ysxm=rstable.Get("    ")
  ksmc=rstable.Get("    ")
  bch=rstable.Get("   ")
  yzyts=rstable.Get("     ")
  zfy=rstable.Get("   ")
//     global
  ^MonitorResult(value,zyh)=brxm_"^"_brxb_"^"_brnl_"^"_zyh_"^"_ysxm_"^"_ksmc_"^"_bch_"^"_ryrq_"^"_dqsj_"^"_yzyts_"^"_zfy
}
}else {
..ExecLog(sql, "", "0")
}
rtnMsg.header.result="True"
rtnMsg.header.reason=""
pResponse.mess.CopyFrom(##class(%GlobalCharacterStream).%New())
Quit $$$OK
}