Caché获取对象

Class  Text.User Extends  %Persistent
{
// 用户编号
Property  userid As  %String ;
// 用户名
Property  name As  %String ;
//性别
Property  gender As  %String ;

Index  useridIndex On userid [ Unique  ];

//  方式一
ClassMethod  queryUser( UserId  As  %String )

{

//根据系统的%OpenId()获取到对象然后取到对应的值

//优点在知晓Id的时候,很方便效率速度也不错,缺点没加入索引无法更高效率操作数据

user = ##class ( Text.myopenidtext ). %OpenId ( UserId )
' $IsObject ( user ) {
"Specified object cannot be found"
} else {
"object property:"  _ user . name
}
}

//  方式二
ClassMethod  queryUser2( UserId  As  %String )

{

//根据索引打开对象

//优点加入了索引操作,推荐

user = ##class ( Text.myopenidtext ). useridIndexOpen ( UserId )
' $IsObject ( user ) {
"Specified object cannot be found"
} else {
"object property:"  _ user . name
}
}

//  方式三
ClassMethod  queryUser3( UserId  As  %String )
{

rowid=""

//根据索引的gobel得到编号获取数据

//缺点修改属性后编号容易发生编号造成错误,优点在一些与数据库对接上很方便

rowid = $o (^Text.myopenidtextI( "useridIndex" , " " _ UserId , rowid ))
name = $lg (^Text.myopenidtextD( rowid ),3)
;b
name = ""  && name  = $c (0) {
"Specified object cannot be found"
} else {
"object property:"  _ name
}
}

//  d ##class(Text.myopenidtext).queryUser()

ClassMethod  addUser()
{
o = ##class ( Text.myopenidtext ). %New ()
o . userid =1
o . name = "miss"
o . gender = "man"
start = o . %Save ()
start =1
{
"good"
} else {
"error"
}
}

<Storage name=" Default ">
<Data name=" myopenidtextDefaultData ">
<Value name=" 1 ">
<Value>%%CLASSNAME</Value>
</Value>
<Value name=" 2 ">
<Value>userid</Value>
</Value>
<Value name=" 3 ">
<Value>name</Value>
</Value>
<Value name=" 4 ">
<Value>gender</Value>
</Value>
</Data>
<DataLocation>^Text.myopenidtextD</DataLocation>
<DefaultData>myopenidtextDefaultData</DefaultData>
<ExtentSize>100000</ExtentSize>
<IdLocation>^Text.myopenidtextD</IdLocation>
<IndexLocation>^Text.myopenidtextI</IndexLocation>
<StreamLocation>^Text.myopenidtextS</StreamLocation>
<Type>%Library.CacheStorage</Type>
</Storage>
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值