Caché数据库开发技术

一、Caché简介及多维存储

Caché数据库是Inter Systems公司的产品,为了适应互联网的迅速发展对数据存储效率的要求,Inter Systems公司经过多年的努力,研发出了Caché数据库。Caché是新一代高性能数据库技术,它被誉为创新的“后关系型”数据库,作为后关系型数据库,它可以采用三种方式对其中的数据进行访问:1.对象数据库访问;2.SQL语句进行访问;3.采用多维数组的方式。

示例1.1:对象方式

/// function:通过对象的方式获取CT_Title的数据
/// debug:w ##class(web.TestTitle).GetDataByObj(11)
ClassMethod GetDataByObj(Id As %String) As %String
{
	set TTLRowId=""
	set TTLCode=""
	set TTLDesc=""
	set PObj=##class(User.CTTitle).%OpenId(Id)
	if (PObj){
		set TTLRowId=Id
	    set TTLCode=PObj.TTLCode
		set TTLDesc=PObj.TTLDesc
		}
	Quit TTLRowId_" "_TTLCode_" "_TTLDesc
}

示例1.2:SQL方式

/// function:通过SQL的方式获取CT_Title的数据
/// debug:w ##class(web.TestTitle).GetDataBySQL(11)
ClassMethod GetDataBySQL(Id As %String) As %String
{
	set TTLRowId=""
	set TTLCode=""
	set TTLDesc=""
	&SQL(
		select TTL_RowId,TTL_Code,TTL_Desc
		into :TTLRowId,:TTLCode,:TTLDesc
		from SQLUser.CT_Title where TTL_RowId=:Id
	)
	Quit TTLRowId_" "_TTLCode_" "_TTLDesc
}

示例1.3:多维数组方式

/// function:通过多维数组的方式获取CT_Title的数据
/// debug:w ##class(web.TestTitle).GetDataByGlobal(11)
ClassMethod GetDataByGlobal(Id As %String) As %String
{
	set TTLRowId=""
	set TTLCode=""
	set TTLDesc=""
	set TTLRowId=Id
	set TTLCode=$p($g(^CT("TTL",TTLRowId)),"^",1)
	set TTLDesc=$p($g(^CT("TTL",TTLRowId)),"^",2)
	Quit TTLRowId_" "_TTLCode_" "_TTLDesc
}

二、Caché数据库的特点

1.Caché包括应用服务器

Caché提供的不仅仅是一种单纯的数据库技术,在Caché中包括一个应用服务器,这个服务器提供高级对象编程,并且可以很容易地与很多技术集成。

2.Caché的编程技术--M语言

Caché提供了可以用多种技术编写数据库和业务逻辑的能力。Caché的ObjectScript支持所有数据存取方法:对象、SQL、多维数组和嵌入式 HTML 。Caché Basic 与 Visual Basic 非常相似,只是做了很少的调整扩展,以便利用 Caché独特的性能。

3.Caché的CSP技术

Caché为开发复杂的、基于网页应用程序提供了丰富的集成开发环境。Caché Service Page(CSP)技术可以进行快速开发,动态产生。

示例2.1:默认的CSP页面





	Cache Server Page 





		
		My page body

示例2.2:通过CSP实现前后端交互


 i ##Class(websys.SessionEvents).SessionExpired() q 1
 quit 1



Test


	
课程代码:
Set LocId = %session.Data("LOGON.CTLOCID") Set LocDesc = $p(^CTLOC(LocId),"^",2) set CourseNum = $g(%request.Data("CourseNum",1)) if (CourseNum'=""){ Set rs = ##class(%ResultSet).%New("web.DHCAStudentCourse:FindInfo") Set %sc = rs.Execute(CourseNum) w "" While(rs.Next()){ w "" } Do rs.Close() Set rs = "" }
姓名分数
"_rs.GetDataByName("StName")_""_rs.GetDataByName("Score")_"
当前用户: #(%session.Data("LOGON.USERNAME"))# 当前科室: #(LocDesc)#

三、开发环境及映射关系

1.开发环境

开发环境B/S架构

Web容器 : IIS

开发语言: M

数据库:  Caché

IE-->IIS ->CSP Gateway ->csp application->dhc.logon.csp--反向操作

2.命名空间与数据库的映射关系

应用程序通过命名空间访问数据库里的数据和程序,因此, 命名空间和数据库之间要建立映射。命名空间和数据库之间的映射不一定是一对一的。一个数据库可以被多个命名空间访问;相反,一个命名空间可以访问多个数据库里的数据。建立命名空间的主要工作就是建立与数据库的映射,这样做可以将程序逻辑与物理存在的数据独立开来,便于开发人员专注于系统功能设计,不需要为未来实施时不同的系统架构而作出额外的工序,系统架构也因为这样变得更灵活。

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