cache数据库的增删改查

一:增加数据(代码在修改数据里面)

二:删除数据

//Creator: shenchao
//Description: 删除数据
//Input: Id
//Return: 成功返回0,失败返回<0的代码
//Debug: w ##class(文件位置).DeleteById(1)
ClassMethod DeleteById()
{
    new (Id)    //保护Id
    Set Save=##class(文件).%DeleteId(Id)    //删除信息
    if $system.Status.isError(Save)    //如果失败
    {
        Do $system.OBJ.DisplayError(Save)
        Sei Return=-1
    }    
    else
    {
        Set Return=0
    }
       Quit Return
}

三:修改数据

//Creator: shenchao
//Description: 更新用户信息
//Input: str(字符串),seq(分隔符)
//Return: 成功返回ID,失败返回0
//Debug: w ##class(文件位置).Update(str,sep)
ClassMethod Update(Str As %String, Sep As %String = "^") As %String
{
    New (Str,Sep)    //保护Str和Sep
    Set Return=0
    Quit:Str="" Return    //字符串为空返回空值
    Set Id=$p(str,sep,1)   //取字符串分隔符的第一个串为ID    
    Set Code=$p(str,sep,2)    
    Set Name=$p(str,sep,3) 
    Set SexDr=$p(str,sep,4)
    Quit:Code="" Return    //当主键Code为空时返回空值
    Set Code=$zcvt("U");    //转换为大写
    Set tId=$o(^DHCHAI.BT.CareProvI("数据",0))    //获取Code的iD
    Quit:(tId'="")&&(tId'=Id) -2    //如果更改Id的Code在其他数据里面存在即Code主键重复,返        
                                      回-2
    
    if Id=""     //ID为空的话就新增数据
    {
        Set Obj=##class(文件).%New()    //创建一个新Obj
    }
    else
    {
        Set Obj=##class(文件).%OpenId(Id)    //获取Id的OBJ
    }    
    Quit:'IsObject(Obj) Return    //如果不是OBJ类型返回空
    Set Obj.Code=Code    //更改设置值
    Set Obj.Name=Name
    Set Obj.SexDr=SexDr
    Set Save=Obj.%Save()
    if $system.Status.IsError(Save)    //检查Save是否成功
    {
        Do $system.OBJ.DisplayError(Save)    //失败系统报错
        Set Return=-1
    }
    else
    {
        Set Return=Obj.%Id()
    }
    Do Obj.%Close()
}
   

四:查询数据

特别(获取数据):

思路:根据Code可以获取global里面的数据类型(例:^DHCHAI.BT.CareProvI("IndexXcode","aScode||1","6")=值),Set                              ID=$o(^DHCHAI.BT.CareProvl("IndexXode",Code,0),可以获取ID=6,再通过ID查询数据得到id=ID的Obj对象。

代码:

//Creator:shenchao
//Description:根据Code取数据,获得医护人员
//Input: Code
//Return: Obj医护人员
//Debug: w ##class(文件位置).GetObjByCode(Code)
ClassMethod GetObjByCode(Code As %String) As 数据库
{
    New (Code)    //保护Code不被修改
    Set Return=""    
    Quit:Code="" Return //Code为空返回空值
    Set Code=$zcvt(Code,"U")    //转换为大写
    Set ID=$o(^global("前缀",code,0))    //获取ID
    Set:ID'="" Return ##class(文件位置).GetObjById(ID)    //通过ID获取Obj
    Quit return    //ID为空就返回空值
}
//Creator:shenchao
//Description: 根据ID获取数据,得到医护人员Obj
//Input: ID
//Return: Obj
//Debug: w w ##class(文件位置).GetObjById(ID)
ClassMethod GetObjById(ID As %String) As 数据库
{
    New (ID)    //保护Code不被修改
    Set Return=""    
    Quit:ID="" Return //Code为空返回空值
    Quit:'##class(文件位置).%Exist(ID) Return    //如果ID不存在就返回空  
    Set Obj=##class(文件位置).openId(ID)         //打开为ID的Obj
    Do:Obj'="" Obj.%Close()      //Obj不为空时关闭Obj
    Quit Obj    //返回Obj
}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值