cache数据库入门教程

1.建立csp文件 
这里写图片描述

2.保存到dthealth/web/csp下

3.进入demo 1 网页系统配置->菜单管理,将它放到注册建卡菜单下,菜单项名为培训测试 
这里写图片描述

4.找到刚才的网页,允许通过为Demo Group 
这里写图片描述

5.更新,注册建卡里就有了这个csp 
这里写图片描述

上一篇   IIS配置问题

1..MAC文件是m语言,下面是test111.MAC

 
  1. test111

  2.  
  3. aa()

  4. w "abc"

  5. q 0

  • 最上面的名字和文件名一致
  • 然后是方法名
  • 文件名和方法名要顶头写,不能有空格 
    调用方式:DHC-APP>d aa^test111(),方法名有括号就带括号

2..cls是类文件,方法的写法与上面不一样

 
  1. ClassMethod aa()

  2. {

  3. w "abc"

  4. q 0

  5. }

  • 调用方式:DHC-APP>d ##class(web.test111).aa()

3.建立临时Global

 
  1. DHC-APP>set ^TEMP=3//Global物理存储到数据库,terminal关了的话还会有,其他变量会消失

  2. DHC-APP>S ^TEMP("A")=1//设置节点

  3.  
  4. DHC-APP>s ^TEMP("B")=2

在Global里可以搜索到^TEMP 
这里写图片描述

4.$h日期函数 
$ZDate 把$Horolog 格式的日期值按照指定格式显示 
+号表示第一个非数字符号前的数字 
$ZDateH 是$ZDate 的反函数 
$ZTime 把$Horolog 格式的时间值按照指定格式显示。 
$ZTimeH $ZTime 的反函数。

 
  1. DHC-APP>w $h

  2. 63802,58589

  3. DHC-APP>w $zd(63802)

  4. 09/07/2015

  5. DHC-APP>w $zd(63802,3)

  6. 2015-09-07

  7. DHC-APP>w +$h

  8. 63802

  9. DHC-APP>w $zd(+$h,3)

  10. 2015-09-07

  11. DHC-APP>w $zdh("2015-9-7",3)

  12. 63802

  13. DHC-APP>w $zdh("2024-9-7",3)-$zdh("2015-9-7",3)

  14. 3288

  15. DHC-APP>w $zt(58543)

  16. 16:15:43

  17. DHC-APP>w $zt(58543,2)

  18. 16:15

  19. DHC-APP>w $zt(58543,3)

  20. 04:15:43PM

  21. DHC-APP>w $zt($p($h,",",2))

  22. 17:07:50

5.$i 

对每次运行的global产生唯一一个值

 
  1. DHC-APP>w $i(^TEMP)

  2. 4

  3. DHC-APP>w $i(^TEMP)

  4. 5

  5. DHC-APP>w $i(^TEMP)

  6. 6

6.$e截取字符串

 
  1. DHC-APP>s a="abcdef"

  2.  
  3. DHC-APP>w $e(a,2)

  4. b

  5. DHC-APP>w $e(a,2,4)

  6. bcd

7.for循环1加到100

 
  1. ClassMethod testfor()

  2. {

  3. s m=0

  4. f i=1:1:100 d

  5. .s m=m+i

  6. s sum=m

  7. q sum

  8. }

  9. DHC-APP>w ##class(web.test111).testfor()

  10. 5050

  • 计算有多少个科室
 
  1. ClassMethod testfor()

  2. {

  3. s m=0

  4. s ctlocrowid=""

  5. //q和d,f和s空两个空格

  6. f s ctlocrowid=$o(^CTLOC(ctlocrowid)) q:ctlocrowid="" d

  7. .s m=m+1

  8. s sum=m

  9. q sum

  10. }

  • 8.Terminal查看Global 

zw ^STUDENT

9.buildIndices()重建索引指定的类

上一篇   IIS配置问题

1.建立Student表 
表名:t_Student RowID:St_RowID 
属性:StCode,StName,StSexDR,StDob 
StSexDR为性别指向,指向一个CTSex性别表

 
  1. Class User.Student Extends %Persistent [ SqlRowIdName = St_RowID, SqlTableName = t_Student, StorageStrategy = StudentStorage ]

  2. {

  3.  
  4. Property StCode As %String [ Required, SqlColumnNumber = 2, SqlFieldName = st_code ];

  5.  
  6. Property StName As %String [ SqlColumnNumber = 3, SqlFieldName = st_name ];

  7.  
  8. Property StSexDR As CTSex [ SqlColumnNumber = 4, SqlFieldName = st_sex_dr ];

  9.  
  10. Property StDob As %Date [ SqlColumnNumber = 5, SqlFieldName = st_dob ];

  11.  
  12. Relationship ChildCourse As User.StuCourse [ Cardinality = children, Inverse = StudParRef ];

  13.  
  14. Index indexcode On StCode;

  15.  
  16. }

  • 2.建立Course表
 
  1. Class User.Course Extends %Persistent [ SqlRowIdName = C_RowID, SqlTableName = t_Course, StorageStrategy = CourseStorage ]

  2. {

  3.  
  4. Property Code As %String [ SqlColumnNumber = 2, SqlFieldName = C_Code ];

  5.  
  6. /// 课程描述

  7. Property Desc As %String [ SqlColumnNumber = 3, SqlFieldName = C_Desc ];

  8.  
  9. Property DateFrom As %Date [ SqlColumnNumber = 4, SqlFieldName = C_DateFrom ];

  10.  
  11. Property Active As %String(DISPLAYLIST = ",Yes,No", MAXLEN = 3, TRUNCATE = 1, VALUELIST = ",Y,N") [ SqlColumnNumber = 5, SqlFieldName = C_Active ];

  12.  
  13. Property UserDr As User.SSUser [ SqlColumnNumber = 6, SqlFieldName = C_User_Dr ];

  14.  
  15. }

3.学生选课表

 
  1. Class User.StuCourse Extends %Persistent [ SqlRowIdName = SC_RowID, SqlTableName = t_StuCourse, StorageStrategy = stucourse ]

  2. {

  3.  
  4. Index RowIDBasedIDKeyIndex On SCChildSub [ IdKey, PrimaryKey, Unique ];

  5.  
  6. Relationship StudParRef As User.Student [ Cardinality = parent, Inverse = ChildCourse, Required, SqlFieldName = SC_S_ParRef ];

  7.  
  8. Property SCChildSub As %Library.Numeric(SCALE = 0) [ InitialExpression = {$i(^STUDENT($p($s($d(initvalue):initvalue,1:%d(0)),$c(1)),"C",0))}, Required, SqlColumnNumber = 2, SqlFieldName = SC_ChildSub ];

  9.  
  10. Property SCCourseDr As User.Course [ SqlColumnNumber = 3, SqlFieldName = SC_Course_Dr ];

  11.  
  12. Property SCScore As %Float [ SqlColumnNumber = 4, SqlFieldName = SC_Score ];

  13.  
  14. }

  • 这里写图片描述

这里写图片描述 
这里写图片描述 
这里写图片描述 
这里写图片描述 
注意:Rowid用表名.Rowid

4.查询某个学生的选课情况

 
  1. Class web.StuCourse Extends %Persistent

  2. {

  3.  
  4. ClassMethod FindCourseByStud(stuno)

  5. {

  6.  
  7. Quit:stuno="" ""

  8. ;第二个空是返回值

  9. set stuId=$o(^STUDENTi(0,"No",stuno,""))

  10. set sub=0

  11. For set sub=$o(^STUDENT(stuId,"C",sub)) quit:sub="" d

  12. .set g=^STUDENT(stuId,"C",sub)

  13. .set CourseId=$p(g,"^",1)

  14. .set CourseDesc=$p(^COURSE(CourseId),"^",2)

  15. .set Score=$p(g,"^",2)

  16. .Write CourseDesc_" "_Score

  17. }

  18.  
  19. }

上一篇   IIS配置问题
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

你可能感兴趣的:(cache数据库,cache数据库,数据库)