文档详情

Cache数据库studio下建子表.pdf

发布:2017-05-22约7.78千字共30页下载文档
文本预览下载声明
1. 1. 11..建父子表 看右边页面,新建属性 完成即可 打开自动生成的子表,编译一下,这样,子表自动生成. 这就是生成的子表,及存储结构 特别注意 {%%PARENT}(TPChild) 这要说的是:IdLocation和IndexLocation 可以做修改 IdLocation修改为{%%PARENT}(TPChild) IndexLocation修改为{%%PARENT}(TPChild) 这样,插入数据可以看一下效果 存储结构,跟上一次讲的一样 IndexLocation,先按照这种方式建吧 ^DHCMed.Testi(Person,TPChild) IndexLocation {%%PARENT}(TPChild) 这种方式有点问题 所有持久类,编译后,下边都可以看到对应table 这是sql查询效果 TPSParref记录父表ID 注意子表数据插入 看下边的列表 TPSParref指向父表,注意,如果父表没有ID为1的记录,子表的数据是插 入不进入的. 即,子表是父表的下一级数据 对照Global看一下. 1: ^DHCMed.Test(Person) = 3 对应父表的IdLocation 2: ^DHCMed.Test(Person,1) = $lb(,10,小李) 对应父表的主Global 对应DataLocation和DataNotes $lb(,10,小李) 这就是CacheStorage的存储结果 SQLStorage存储结构为 AA^BB^CC 形式 3: ^DHCMed.Test(Person,1,TPChild) = 1 对应子表的idlocation 4: ^DHCMed.Test(Person,1,TPChild,1) = $lb(,AAAA,B BBB) 对应子表的DataLocation和DataNotes {%%PARENT}(TPChild)与^DHCMed.Test(Person,1,TPChild,1)对照 看下. {%%PARENT}即表示^DHCMed.Test(Person,*) 这就是父子表的索引,也放在一起了. 保持一个原则,父子表的Global最好用同一个Global 13: ^DHCMed.Testi(Person,TPChild,IndexTPSCode, AAAA ,1,1) = ^DHCMed.Testi(Person,TPChild,IndexTPSCode, AAAA,父表 ID,子表ChildSub) = ^DHCMed.Testi(Person,TPChild,IndexTPSCode, AAAA,TPSPar ref,childsub) = 对于子表来讲,childsub是自动产生的,不是插入的数据. 对于主表来讲,ID是自动产生的,不是插入的数据. 子表ID=TPSParref_||_childsub 从这里也能看出来 这种见表方式,就是为了跟原来Termianl下建的表保持统一 定义了个属性对应的SqL中的顺序及字段名称 BDActive是定义了枚举类型(Y/N) 定义属性是,还定义了属性的附加属性. 非空,长度等 , SqlRowIdName = BD_RowId, SqlTableName = DHC_MRC_BaseDic tionary ] 定义了RowID在SQL中名称,SQL中表名称. 再说下Terminal下建的表,基本上dhc-app下都有对应的类 如 Pa_adm User.PAAdm 打开类看一下. 可以注意一下Storage的Type为SQLStorage 上图中也有SQLStorage对应的存储结构. 这种方式,会查看就行了,不要随便在项目正式库上打开这些持久类变异. 凡是不是以DHC打头的类,都不要随便动. Terminal下的类,基本上都在User包下存在. 所以说,原来的持久类都存在User保持啊,业务类都存在web包下. 我们组后来又自己建了DHCMed包,举个例子 DHCMed.SS包下的类都是持久类 DHCMed.SSService下的类都是业务类 其他类似 我们组所有的程序,基本都是以DHCMed,DHCWMR,DHCCPW开头的. 严格遵守 web.DHCCCPW.* User.DHCMRC* 这是临床路径的程序
显示全部
相似文档