一:增加数据(代码在修改数据里面)
二:删除数据
//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
}