Caché学习资料整理_第1页
Caché学习资料整理_第2页
Caché学习资料整理_第3页
Caché学习资料整理_第4页
Caché学习资料整理_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Caché学习资料整理一、Caché概念1、InterSystems公司产品,后关系型数据库2、整合了对象数据访问、高性能的SQL访问、多维数据访问3、在CachéCaché还供给高性能的运行环境,这一运行环境承受独特的分布式数据缓存协议技术。4、Caché的ObjectScript的数据存取方法:对象,SQL、多维数组和嵌入式HTML。5CachéCachéService〔CSP〕技术可以进展快速开发,动态产生。6、Caché以多维数组存储数据,全部数据都保存在Global中。7、Global以如下形式表示:^名称〔123…〕=值8、可以自己定制Global,包括添加,删除,修改,遍历起节点。多维数组以树状的形式保存,他的每一个节点直接与磁盘和内存中的数据块相对应,因此可以到达极快的访问速度。在此根底上将多维数组映射成对象或者关系形的格式,分别由面对对象的接口和基于SQL的接口进展访问。9、Caché完全面对对象,可以直观的数据建模。10库的映射,这样做可以将程序规律与物理存在的数据独立开来。//命名空间是一个规律图,这个图把多维Global数组和代码映射到数据库。11、Caché的菜单GettingStarted入门文档初学者可从中猎取必要信息StartCaché 启动Caché启动Caché效劳StopCaché Caché关闭Caché效劳。点击后选择是要关闭还是要重启Caché。Studio工作室Caché的集成开发环境。Terminal终端通过类似于DOS的终端界面访问CachéExplorer资源治理器查看Caché中的数据资源,包括多维数组、类和例程SQLManagerSQL治理器通过关系型方式访问CachéControlPanel掌握面板监视和治理Caché的运行ConfigurationManager配置治理器进展根本配置,包括数据库的配置Documentation联机文档只有启动Caché后才可以阅读全部文档信息RemoteSystemAccess>远程系统访问在本地掌握远端的Caché效劳器(任意平台)。UNIX系统的治理要通过这种方式实现。子菜单中同样包含了工作室,终端,资源治理器,SQL治理器,掌握面板,配置治理器,联机文档等菜单项。PreferredServerCachéCaché效劳器列表。Windows平台的计算机上治理网络中全部的各种平台的Caché效劳器。About„关于查看版本Exit退出关闭任务栏中的Caché图标12、CachéTerminal常用命令:Zn“namespace” //切换namespaceWrite“content” //写命令SetParameter=content //赋值命令Killtarget //删除命令;不建议在一个运行中的系统使用kill,而后面不跟参数13、创立CSP的两种方式:使用Caché类建立对象框架来创立动态网页通过基于HTML的标记语言把Caché脚本嵌入到HTML中去14、程序应当不仅能够处理简单行为而且能够隐蔽其简单性,这是当今顶尖应用程序所需的两大特征。15、对象能够对简单数据进展简洁建模,所以对象编程是编写简单应用程序的最正确选择。16、Caché对象数据模型和对象编程概述Caché对象模型基于ODMG〔对象数据库治理组:ObjectDatabaseManagementGroup〕标准,并且支持很多高级特性,包括多重继承。17的。18、Caché的一个独一无二的特性是它的单一数据构造。19、Caché数据库的核心是高效的多维数据引擎。20、Caché更数据时使用规律锁,而不是锁住整个物理页,提高了并发性。21、Caché的数据构造支持简单数据的简洁存储,并且不需要简单的声明或者定义。22、为了提高执行效率和降低消息传递,Caché在客户端缓存了对象数据的副本,然后适时进展后台更。23、Caché引进了一种的技术:事务型位图索引。Caché支持传统的位图索引和事务型位图索引。2、企业缓存协议〔EC式系统中的计算机共享彼此的数据库。25、容错机制:Caché写映像日志和其他内嵌的功能确保了大局部硬件故障的完整性,在将客户的影响最小化的同时。快速恢复。Caché还供给高级可用性配置选项,以进一步减小和消退对客户的影响,包括故障切换集群、Shadow效劳器和分布式ECP。26、数据库加密:1.安全治理员可以指定在硬盘上对一个或者多个Caché.DAT〔数据库〕文件进展加密,这些文件中的全部内容都被加密;2.开发人员可以使用系统功能对数据进展加密/解密,随后可将其存储到数据库中或进展传送。该功能用于加密敏感数据,保证不被有权读取数据库、但没有密钥的其他用户使用。默认状况下,Caché使用高级加密标准实现数据库加密,高级加密标准是一个支持128,192256位密钥的对称加密算法。二、CachéObjectScripte1、为了和其他变量和数组的名字区分开来,系统函数名字都以“$”开头。常用系统函数:$extract(stting,from,to) //猎取字符串子串$lenght(string) //计算字符串长度$Length)/被分隔符分割的子串的个数$Horolog //包含了时间和日期,它们由逗号分开。第一局部是日18401231日开头计算日期的数字。其次局部是秒Global中的日期时间都是以数字的形式存储的。格式为数字:1234…$ZDateH 和 $ZDate。$ZD(日期数字,格式)→日期$ZDH(日期,格式)→数字$Ztime和$ZtimeH$ZT(时间数字,格式)→时间$ZTH(时间,格式)→数字$Piece($P)格式:$Piece(变量,“分隔符”,位置)返回一个或者多个被分隔符分开的子串。$Order($O)格式:$Order(variable[,direction])依据指定的方向返回一个变量的上一个或下一个索引$get($g)返回一个变量的值假设变量存在则返回变量本身,不存在则返回空$data($d)推断变量是否存在$Ascii$Ascii说明:返回一个字符的ASCII值。$Char

$Char(expression[])说明:以一个整数型的串里面的数字作为ASCII码值来产生一个字符。$Select$Select(expression:value„)说明:返回第一个为真的表达式对应的值。>Seta=1>Write$Select(a=1:5,a>1:0) //5>Write$Select(a=2:5,a=1:0) //0>Setmin=$Select$TRanslate格式:$TRanslate(string,replace[,by])说明:替换一个字符串中的字符,并返回替换后的结果。$Reverse格式:$REverse(string)说明:逆序返回一个字符串。$ZConVerT格式:$ZCONVERT(string,mode,trantable,handle)说明:返回一个依据指定模式表示的字符串。mode:U、L、S、W、I、O列表函数:$Length 带有两个参数的$Length函数,可以计数一个列表的元素个数。$Piece 取出列表的某一个元素。Set 命令可以增或者替换列表的某一个元素。$ListBuild缩写为$LB,用来产生列表。$ListLength缩写为$LL,返回列表的元素个数$LIst缩写为$LI,取出一个或者多个列表的元素$ListGet缩写为$LG,和$Get一样,但是取消了对空值引用的报错。$ListData缩写为$LD,检查一个列表的元素是不是有值。$ListFind缩写为$LF,从指定位置开头找列表中的某一个2、表达式按从左到右的计算挨次。3、事务Tstart 开头一个事务Tcommit 提交事务Trollback 保存失败后回滚4、特别处理$ZT=“ERROR“ClassMethodtestZT{s$ZT=“ERROR“ //设置一个特别TSTART //开头一个事务s^b=“dddddd“sd=d_“^“_“000“w“e“TCOMMIT //没有发生特别,提交事务q0ERROR//发生特别时执行Set$ZT=““sErrorMsg=$ZE //$ZE猎取错误信息TROLLBACK//有特别,则回滚事务(Golbal才可以回滚,一般变量不能回滚)Quit“Error“_ErrorMsg//返回错误信息}Try…catch5CachéObjectScript对象属性、变量、稀疏的多维数组,允许任何类型的数据、数据库文件Globa,数据库文件也是稀疏的多维数组。6、CachéObjectScript中对象属性是有类型限制的,而另外三中存储类型〔变量、数组、Global〕是完全多态的,类型,依据他们存储时的数据要求以及在表达式里使用的要求来打算他们的数据类型。7、对数据库的直接引用〔Global引用〕实际上是一个多维数组的引用,通过前导符“^”来数据。8、HTMLSQL可以嵌入到CachéObjectScript代码中。三、数据曾删改查1、数据查询执行查询。有两种方式:1:调用预定义查询:通过ResultSet方法,输入类名和查询名,返回结果集(ResultSet)对象;Setrset=##class(%ResultSet).%NewSetrset.ClassName=“完整类名“Setrset.QueryName=“类中已经写好的查询方法名“Dorset.Execute(“查询条件参数”)2:直接调用SQL语句:通过DynamicSQL方法,输入SQL语句,返回结果集对象;Execute方法运行查询。Setrset=##class(%ResultSet).%NewDorset.Prepare(SQL查询语句)Dorset.Execute之后:遍历结果集对象:通过Next,GetData等标准结果集方法访问执行查询后返回的数据。遍历结果集:While(rset.Next){//取一行的数据}}取查询出的数据:1、依据字段名称取:Setcode=rset.Data(“Code“)2、依据字段在一行里面的列号取:Setdata=rset.GetData(n)3、Setdata=rset.GetDataByName(fieldname)关闭查询:Dorset.CloseSetsc=rset.Close例:classcontainingthequerySetrset=##class(%ResultSet).%NewSetrset.ClassName=“Sample.Person“Setrset.QueryName=“ByName“Dorset.ExecuteWhile(rset.Next(.sc))//gotothenextrowoftheresultset{If($SYSTEM.Status.IsOK(sc))//checkifthissucceededwithouterrors{Writerset.Data(“Name“),!//performbusinesslogic}Else//iftherewasanerror,breakoutoftheWhileloop{Quit}}If$SYSTEM.Status.IsError(sc)//iftherewasanerror,processthat{//performerrorprocessing}usethe%ResultSetobjecttoprepareadynamicSQLstatementusingthePreparemethodSetrset=##class(%ResultSet).%NewDorset.Prepare(“SELECTNameFROMSample.PersonWHEREName%STARTSWITH”A”“)Dorset.ExecuteWhile(rset.Next(.sc))//gotothenextrowoftheresultset{If($SYSTEM.Status.IsOK(sc))//checkifthissucceededwithouterrors{Writerset.Data(“Name“),!//performbusinesslogic}Else//iftherewasanerror,breakoutoftheWhileloop{Quit}}If$SYSTEM.Status.IsError(sc)//iftherewasanerror,processthat{//performerrorprocessing}2、数据添加方法1:以对象方式添加数据sobject=##class(className).%New//创立对象perty =value //给对象属性赋值object.%save //保存2:用SQL语句添加数据&SQL(insertintopackageName.SqlTableName(SqlFieldName,„)values(:value))3、数据更改:方法1:以对象方式更改数据=##class(className).%OpenId(ID)//ID的对象object.PropertyName=value //更改属性值2:用SQL&SQL(updatepackageName.SqlTableNamesetSqlFieldName1=value1whereSqlFieldName2=value2)//注:SQL4、数据删除1:以对象方式删除//删除行Do##class(classname).%DeleteId(id)Do##class(classname).%Delete(oid)//删除表Do##class(classname).%DeleteExtent2:用SQL//删除行&SQL(deletepackageName.SqlTableNamewhereSqlFieldName=value)//注:SQL//删除表&SQL(droptablepackageName.SqlTableName)TerminateClassd##class(web.classname).functionname12„.)qw##class(web.classname).functionname12„.)qQueryD##class(%ResultSet).RunQuery(“类名称”,”Qurey1”,”参数2”,„„.)四、组件程序开发1.javascript根底1)功能在客户端IE执行用来与用户交互数据检查、掌握掌握Browser的页面方式2).根本命令var定义变量alert生成一个独立的小窗口,称作对话框,并用它来显示一条信息和一个“确定”按钮!当显示这个对话框时,暂停程序的执行。confirm确认选择对话框用于确定用户某个Yes/No风格问题的答复。这种风格的对话框中显示一个问号和两个按钮Confirm方法返回true;否则返回false。If,elseForLessthan(<)Greaterthan(>)Not(!)Notequal(!=)Equals(==)LogicalAND(&&)LogicalOR(||)IsNOTaNumber(isNaN)Splitstring对象字符以某个符号分开隔开属性documentproperties文档对象,描述当前窗口或指定窗口对象的文档。它包含了文档从<head>到</body>的内容。document.getElementByIddocument.getElementById(“id1“).value//id1的值ObjectpropertiesObj.tagNameObj.classNameObj.typeObj.checkedObj.valueObj.disabledObj.styleObj.readOnly大事documenteventsdocument.body.onload=MyLoadHandler; 当网页翻开,只能书写在body中onUnload 当网页关闭或离开时,只能书写在body中Objecteventsobj.onclick=MyOnClick; 当对象被点击obj.onkeydown=MyKeyDown; 按回车obj.onchange=MyChange; 当对象的内容被转变obj.onblur=MyBlur; 当对象失去焦点obj.onmouseover 当鼠标悬于其上时obj.onmouseout 当鼠标离开对象时obj.onmouseup 当鼠标松开obj.onmousedown 当鼠标按下键obj.onFocus 当对象猎取焦点时obj.onSelect 当对象的文本被选中时我们在使用object.onXXX=handler是需要保证object已经在页面中生成。比方我们为document.body赐予大事处理函数,我们必需保证document.body已经存在,就是说我们不能在<body>之前在的全局语句中使用document.body;handler必需是函数名2.创立组件过程1〕创立组件;进入组件治理器,选择要连接的数据库,如以下图所示选择连接的数据库后,点击进入,然后建组件Component—NewComponent,提示CreateaNewComponent?,选择”是”.系统会默认的创立组件的名称,选中名称,点击右键,进入 ComponentProperties,如下修改组件的名称,同时把DisplayType修改成Custom,Apply按钮,保存所做的转变。2〕创立组件上的元素选中组件名称,点击右键,进入AddItem(s)toComponent,进入界面如下:CustomItem 组件上的单个元素CustomTableItem以列表的形式显示的元素依据实际需求选择要创立的元素类型对于要创立的元素打勾,然后File—Apply3〕修改元素属性选中元素,右键ItemProperties(或双击),如以下图所示Name:元素名称Caption:界面上显示的名称DisplayType:TEXTBOX,LISTBOX,CHECKBOX,LINK,BUTTON等DataType属性:元素显示的数据类型,如日期,字符串等留意:QueryFindDepositAs%Query(ROWSPEC=“Tprtdate:%String,Tprttime:%String,Tpapname:%String,Tpapno:%String,Tpayamt:%String“)中的ROWSPEC中的Tprtdate,Tprttime值OutputRowsetData=$lb(prtdate,prttime,papname,papno,payamt)$lb内的是要输出的值,这些变量的位置要和ROWSPEC内的变量相对应,这样,才能在Table组件的属性:连接Class和Query名称〔在修改时要先把组件的显示类型修改成除Custom之外的类型才能修改〕组件的类型是:修改后组件的显示类型修改成Custom假设是带参数的查询程序,则相应的参数为组件上的元素,那么在点击查找的时候会自动传入参数;4.组件程序的开发〔以押金收据购入程序〕1).放大镜,不带参数,带有参数组件元素为:CustomItem元素的LookUp放大镜要显示的内容写成QueryLookupClassName:要调用的类的名称LookupQueryName:要调用的Query名称LookupProperties:传入的参数,假设没有入参则为空,参数为组件上元素的名称LookupJsFunction:js文件里调用的js函数2).js文件创立,js文件的调用;创立的js文件的名称必需要和对应的组件的名称全都js文件里调用其他js文件里的函数,则要在组件的OtherScript里js文件的名称添加进来,就可以调用里面的函数了前端页面元素调用后台的classmethod的方法;前端页面调用后台的类方法是通过函数js函数里调用cspRunServerMethod(123.。。)来实现1为固定参数,传入的值为要调用的后台的类方法那么入参的猎取是通过组件上的某个元素来获得的如组件UDHCJFRcptBuy中的添加按钮,是通过调用元素ins1来猎取后台要执行的方法〔ValueGet〕classmethod之后接收返回结果的两种方法;直接通过cspRunServerMethod123.。。。)返回结果,可以定义变量直接接收返回结果;假设承受此方式,要求Classmethodq后面返回变量VarReturnvalueReturnvalue=cspRunServerMethod12,3.。。。)通过cspRunServerMethod123.。。。)里的某个参数接收返回值,2如接收返回值的参数的名称为GetReturnValue,那么在传入参数的时候要传到后台cspRunServerMethod(参数1,GetReturnValue,参数3.。。。)在classGetReturnValueSretval=GetReturnValue_“(”“_$ZCVT(返回值,“O“,“JS“)_“”);“&javascript<#(retval)#>,通过javascript在js文件里有个函数名称为GetReturnValue(value),接收返回值括号内的value6).SelectRowHandler 的用途;〔周一〕Table的行数和当前选中的记录的行可以选中某个记录,猎取选中记录的各元素的值猎取到选中的行vareSrc=window.event.srcElement;varrowObj=getRow(eSrc);varselectrow=rowObj.rowIndex;Tablevarobjtbl=document.getElementById(”tUDHCJFRcptBuy”);varrows=objtbl.rows.length;Table上某一行的某个元素的值varSelRowObj=document.getElementById(”Tbuyrowidz”+selectrow);varbuyrowid=SelRowObj.innerText;Tbuyrowidzselectrow行号;假设是显示的列则用SelRowObj.innerText;假设是隐蔽的列则用SelRowObj.Value7).LinkLinkUrl:websys.default.csp〔在输入组件名称时会自动输入〕LinkComponent:要LinkLinkExpression:要传入到所Link假设要在的窗体中翻开组件:GeneralShowInNewWindow:top=30,height=650,left=8,width=10008).按钮中翻开的组件varstr=”websys.default.csp?WEBSYS.TCOMPONENT=UDHCJFDeposit&Adm=”+Adm+”&deposittype=”+t[”01”]window.open(str,”_blank”,”toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes,width=1000,height=700,left=0,top=0”)}9).Message的定义在组件属性的Message页签,定义Code,Descriptionjs文件里调用时用t[‘Code’],猎取Description五.类文件的导出与导入namespacewebsource1.导出Tools---Export,进入如下界面可以导成.XML文件,也可以导成.cdl文件,然后Add要导出的类文件的名称(websource/web名目下),输入要导出的文件保存的路径,可以是本地,也可以是效劳器,点ok即可2.导入同样,转换namespace到websourceTools---ImportLocal(ImportRemote),选择要导入的文件进入如下界面是否把导入的文件加到翻开的工程里,假设是则第一个checkbox打勾;是否自动编译导入的文件;假设编译则打勾;六.组件程序的导

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论