Caché数据库工作中总结

来源:互联网 发布:mac上文档是什么格式 编辑:程序博客网 时间:2024/06/05 19:13

$zcvt转换函数--全名$ZCONVERT

//把w转换成C

w $zcvt("www.wocao.com","C")

s:$zcvt(type,"U")="Q"


XECUTE动态执行表达式

例子1

动态的打印一句话

XECUTE ("WRITE ""hello world"",!")

例子二:

执行1>3表达式获取结果

 (data) s data ="表达式",data--意思是 获取表达式的值赋值给data ,.data是需要返回一个表达式执行后的结果

XECUTE ("(data) s data="_1_>_3,.data)

例子三:

得到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}

0 0
原创粉丝点击