1.建立Student表
表名:t_Student RowID:St_RowID
属性:StCode,StName,StSexDR,StDob
StSexDR为性别指向,指向一个CTSex性别表
Class User.Student Extends %Persistent [ SqlRowIdName = St_RowID, SqlTableName = t_Student, StorageStrategy = StudentStorage ]
{
Property StCode As %String [ Required, SqlColumnNumber = 2, SqlFieldName = st_code ];
Property StName As %String [ SqlColumnNumber = 3, SqlFieldName = st_name ];
Property StSexDR As CTSex [ SqlColumnNumber = 4, SqlFieldName = st_sex_dr ];
Property StDob As %Date [ SqlColumnNumber = 5, SqlFieldName = st_dob ];
Relationship ChildCourse As User.StuCourse [ Cardinality = children, Inverse = StudParRef ];
Index indexcode On StCode;
}
2.建立Course表
Class User.Course Extends %Persistent [ SqlRowIdName = C_RowID, SqlTableName = t_Course, StorageStrategy = CourseStorage ]
{
Property Code As %String [ SqlColumnNumber = 2, SqlFieldName = C_Code ];
/// 课程描述
Property Desc As %String [ SqlColumnNumber = 3, SqlFieldName = C_Desc ];
Property DateFrom As %Date [ SqlColumnNumber = 4, SqlFieldName = C_DateFrom ];
Property Active As %String(DISPLAYLIST = ",Yes,No", MAXLEN = 3, TRUNCATE = 1, VALUELIST = ",Y,N") [ SqlColumnNumber = 5, SqlFieldName = C_Active ];
Property UserDr As User.SSUser [ SqlColumnNumber = 6, SqlFieldName = C_User_Dr ];
}
3.学生选课表
Class User.StuCourse Extends %Persistent [ SqlRowIdName = SC_RowID, SqlTableName = t_StuCourse, StorageStrategy = stucourse ]
{
Index RowIDBasedIDKeyIndex On SCChildSub [ IdKey, PrimaryKey, Unique ];
Relationship StudParRef As User.Student [ Cardinality = parent, Inverse = ChildCourse, Required, SqlFieldName = SC_S_ParRef ];
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 ];
Property SCCourseDr As User.Course [ SqlColumnNumber = 3, SqlFieldName = SC_Course_Dr ];
Property SCScore As %Float [ SqlColumnNumber = 4, SqlFieldName = SC_Score ];
}
注意:Rowid用表名.Rowid
4.查询某个学生的选课情况
Class web.StuCourse Extends %Persistent
{
ClassMethod FindCourseByStud(stuno)
{
Quit:stuno="" ""
;第二个空是返回值
set stuId=$o(^STUDENTi(0,"No",stuno,""))
set sub=0
For set sub=$o(^STUDENT(stuId,"C",sub)) quit:sub="" d
.set g=^STUDENT(stuId,"C",sub)
.set CourseId=$p(g,"^",1)
.set CourseDesc=$p(^COURSE(CourseId),"^",2)
.set Score=$p(g,"^",2)
.Write CourseDesc_" "_Score
}
}