cache数据库:对象方式的数据库访问

来源:互联网 发布:北京现代网络商学院 编辑:程序博客网 时间:2024/05/22 19:41

修改后的数据库截图 
这里写图片描述 
对象是User.Person 
代码:

Class web.PersonObj Extends %RegisteredObject{ClassMethod insertbyobj(name, age, sex){    ///先生成一个person对象    set person=##class(User.Person).%New()    ///对象属性赋值    set person.age=age    set person.name=name    set person.sex=sex    ///保存    set sc=person.%Save()    ///判断是否正确    if $$$ISERR(sc){Quit "fail"}Quit "success"}ClassMethod updateobj(rowid, name){set course = ##class(User.Person).%OpenId(rowid)set course.name=nameset sc=course.%Save()if $$$ISERR(sc){quit "fail"}quit "success"}ClassMethod deleteobj(rowid){set sc=##class(User.Person).%DeleteId(rowid)if $$$ISERR(sc){        Quit "fail"        }        Quit "success"}}1.我们已经建了一个person类,接下来就是表的存储结构 
2.打开Inspector,先输入rowid名字为p_RowID,选class->Storage 
这里写图片描述 
3.新建一个Storage,选择CacheSQLStorage,在SqlIdExpression中输入$i(^mdata(“Person”))是\$不是S 
意思是设置Rowid为自增,注意StremLocation的写法 
这里写图片描述 
4.Caché 以多维数组存储数据,所有数据都是保存Global中。Global以如下形式表示:^名称(下标1,下标2,下标3…)=值 
SET ^Y(3,6,7)=”third” 
SET ^Y(3,6,8)=”fourth” 
SET ^Y(3,6,7,8,4)=”fifth” 
SET ^Y(3,6,7,8,9)=”sixth” 
Global的树状结构如下: 
5.打开SQL storage map建立索引,点击add,选择map type为data,输入global名,一般为类名的大写 
这里写图片描述 
6.点击左侧data,选择add添加glabal的三条数据,用“^”隔开 
这里写图片描述 
7.点击左侧Subscripts,输入{p_RowID} 
这里写图片描述 
8.点击左侧Rowid,输入如图所示 
这里写图片描述 
9.这时就建立了一个主索引,通过rowid可以查询表数据 
这里写图片描述 
^PERSON(1)=xiaoming^18^man 
^PERSON是global名,(1)表示rowid为1,后面的数据位置根据data里的位置排列 
10.接下来,我们在建一个索引,在NewStorage1里add一个索引,map type选择index,输入global名 
这里写图片描述 
11.Subscripts建立如图所示,这里表示了global的四个层级,第一和第二层级是自己起的名字,方便理解global存储的信息,三四层是具体内容 
这里写图片描述 
12.rowid如图所示,是第四层 
这里写图片描述 
13.这个以名字建立的索引我们以global来理解 
^PERSONi(0,”name”,”xiaoming”,1)=0
阅读全文
0 0