疯狂 Caché
文章平均质量分 90
Cache相关技术的基础
yaoxin521123
创造价值,分享学习,一起成长,相伴前行。
展开
-
疯狂 Caché
疯狂 Caché第一章 疯狂Caché 介绍CachéObjectScript第二章 疯狂Caché 语法规则第三章 疯狂Caché 数据类型和值第四章 疯狂Caché 变量第五章 疯狂Caché 运算符和表达式(一)第五章 疯狂Caché 运算符和表达式(二)第五章 疯狂Caché 运算符和表达式(三)第五章 疯狂Caché 运算符和表达式(四)第五章 疯狂Caché 运算符和表达式(五)第六章 疯狂Caché 正则表达式(一)第六章 疯狂Caché 正则表达式(二)第七章 疯狂C原创 2020-06-05 08:48:45 · 3467 阅读 · 0 评论 -
第十七章 疯狂Caché M语言兼容性(二)
文章目录 第十七章 疯狂Caché M语言兼容性(二)设备控制助记符空间与设备控制助记符在兼容模式下实现的其他DSM语言功能`VIEW`命令和`$VIEW`函数数据库转换DSM-J语言兼容性DTM语言兼容性DTM兼容模式下的编程操作符JOB命令I/O命令`View` 和 `$View`DSM-11兼容模式结构化系统变量命令、函数和特殊变量命令函数特殊变量数据库转换MSM语言兼容性命令、函数和特殊变量命令函数特殊变量数据库转换 第十七章 疯狂Caché M语言兼容性(二)设备控制助记符空间与设备控制助记符原创 2020-06-04 08:43:12 · 732 阅读 · 0 评论 -
第十七章 疯狂Caché M语言兼容性(一)
文章目录 第十七章 Caché M语言兼容性(一)显示和切换语言模式DSM-11语言兼容性使用常规内联锁装置。打开特殊设备锁定 Global为例行联锁设备发出I/O命令打开命令语法关闭命令语法使用DSM-11模式例程将例程从DSM-11模式转换为Caché模式常规操作保存和恢复例程列出当前命名空间中的例程%RCOPY和%RCOMPILCachéStudio和例程行编辑器从DSM-11系统传输全局数据ANSI整理的全局参数字符串排序的全局变量DSM-11兼容模式下的I/O编程DSM-11兼容模式下的终端I/O原创 2020-06-03 08:49:24 · 1039 阅读 · 0 评论 -
第十六章 疯狂Caché 命令行例程调试(三)
文章目录 第十六章 疯狂Caché 命令行例程调试(三)终端提示符显示程序堆栈信息`For`循环和`While`循环在中断或出错后恢复执行示例对话框终端提示符下的新命令终端提示符下的`QUIT`命令Caché错误消息使用`%STACK`显示堆栈正在运行`%STACK`显示进程执行堆栈显示不带变量的堆栈使用特定变量显示堆栈显示包含所有已定义变量的堆栈显示包含所有变量(包括状态变量)的堆栈了解堆栈显示%Stack实用程序信息可用的帧类型和值显示特定堆栈级别的变量使用变量显示堆栈级别显示进程状态变量打印堆栈和/或原创 2020-06-02 08:56:14 · 861 阅读 · 0 评论 -
第十六章 疯狂Caché 命令行例程调试(二)
文章目录 第十六章 疯狂Caché 命令行例程调试(二)跟踪执行跟踪消息格式中断按键和中断显示有关当前调试环境的信息默认显示断点和监视点存在时显示使用调试设备调试器示例Caché了解Caché 调试器错误使用中断进行调试使用无参 Break暂停例程执行使用带参数的`Break`暂停例程执行正在关闭调试 第十六章 疯狂Caché 命令行例程调试(二)跟踪执行可以使用以下形式的ZBREAK控制是否启用ZBREAK命令的“T”操作:ZBREAK/TRACE:STATE[:DEVICE]其中,状态可以是原创 2020-06-01 08:28:14 · 770 阅读 · 0 评论 -
第十六章 疯狂Caché 命令行例程调试(一)
文章目录第十六章 Caché 命令行例程调试(一)使用调试器Caché进行调试使用断点和监视点建立断点和监视点语法:使用代码位置设置断点。断点执行代码中的无参数`GOTO`使用本地和系统变量名称设置监视点操作参数值`ZBREAK`示例禁用断点和监视点禁用特定断点和监视点禁用所有断点和监视点延迟执行断点和监视点删除断点和监视点。单步断点操作第十六章 Caché 命令行例程调试(一)本章介绍用于测试和调试 Caché应用程序的 Caché技术。它的主题包括:使用调试器Caché进行调试使用中断进行调试原创 2020-05-31 07:34:54 · 975 阅读 · 0 评论 -
第十五章 疯狂Caché 错误处理(三)
文章目录 第十五章 疯狂Caché 错误处理(三)使用`$ETRAP`处理错误`$ETRAP`错误处理程序上下文特定的`$ETRAP`错误处理程序`$ETRAP`错误处理程序`$ETRAP`控制选项流处理错误并继续应用程序将控制传递给另一个错误处理程序终止应用程序在错误处理程序中处理错误`$ETRAP`错误处理程序中的错误`$ZTRAP`错误处理程序中的错误`$ZERROR`和`$ECODE`特殊变量中的错误信息强制出错设置`$ECODE`创建特定于应用程序的错误处理来自Terminal的错误了解错误消息格原创 2020-05-30 08:49:10 · 1325 阅读 · 0 评论 -
第十五章 疯狂Caché 错误处理(二)
文章目录 第十五章 疯狂Caché 错误处理(二)传统的错误处理传统错误处理的工作原理内部错误捕获行为调用堆栈上的帧当前上下文级别`$STACK`特殊变量`$ESTACK`特殊变量`$STACK`函数错误码`$ZERROR`值`$ECODE`值使用`$ZTRAP`处理错误。在程序中设置`$ZTRAP`在例程中设置`$ZTRAP`编写`$ZTRAP`代码使用`$ZTRAP`使用错误陷阱解除新命令的堆栈。`$ZTRAP`控制选项流继续应用程序将控制传递给另一个错误处理程序 第十五章 疯狂Caché 错误处理(原创 2020-05-29 08:55:20 · 1652 阅读 · 0 评论 -
第十五章 疯狂Caché 错误处理(一)
文章目录 第十五章 Caché 错误处理(一)`TRY-CATCH`机制使用 `THROW` 和 `TRY-CATCH`使用`$$$ThrowOnError`和`$$$ThrowStatus`宏使用`%Exception.SystemException`和`%Exception.AbstractException`类`try-catch`的其他注意事项在`try-catch`块内退出`TRY-CATCH`和执行堆栈在传统错误处理中使用`try-catch```Status`错误处理创建`%Status`错误原创 2020-05-28 09:09:43 · 1294 阅读 · 0 评论 -
第十四章 疯狂Caché 事务处理
文章目录 第十四章 Caché 事务处理管理应用程序内的事务处理事务命令使用在事务中使用锁在事务中使用`$INCREMENT`和`$SEQUENCE`应用程序内的事务回滚发出SQL或Caché ObjectScript回滚命令。回调`ETN`应用程序内的事务处理示例自动事务回滚事务处理的系统范围问题使用事务处理进行备份和日志记录异步错误通知 第十四章 Caché 事务处理事务是一个逻辑工作单元。事务处理有助于维护数据库的逻辑完整性。例如,当将资金从一个帐户转移到另一个帐户时,银行可能需要从一个表中的字原创 2020-05-27 08:53:52 · 1079 阅读 · 0 评论 -
第十三章 疯狂Caché 锁管理
文章目录第十三章 Caché 锁管理在系统范围内管理当前锁使用锁表查看锁使用锁表删除锁^LOCKTAB实用程序正在等待锁定请求数组节点锁请求队列ECP本地和远程锁请求。避免死锁第十三章 Caché 锁管理进程可以使用lock命令应用(锁定)和释放(解锁)锁定。锁控制对数据资源(如全局变量)的访问。这种访问控制是约定的;锁及其对应的变量可以具有相同的名称,但是彼此独立。更改锁不会影响同名变量;更改变量不会影响同名锁。锁本身不会阻止另一个进程修改相关数据,因为Caché不强制执行单边锁。锁只能按照约定工作原创 2020-05-26 09:00:40 · 1014 阅读 · 0 评论 -
第十二章 疯狂Caché 字符串操作
文章目录 第十二章 Caché 字符串操作基本字符串操作和函数`$Extract`的高级功能分隔字符串高级`$PIECE` 功能列表结构字符串操作稀疏列表和子列表比较列表和分隔字符串列表的优点分隔字符串的优点 第十二章 Caché 字符串操作基本字符串操作和函数ObjectScript基本字符串操作允许对字符串执行各种操作。它们包括:$LENGTH函数返回字符串中的字符数:例如,代码: WRITE $LENGTH("How long is this?")17$JUSTIFY返回右对齐原创 2020-05-25 09:39:42 · 1486 阅读 · 0 评论 -
第十一章 疯狂Caché 多维数组
文章目录第十一章 Caché 多维数组什么是多维数组多维树形结构稀疏多维存储多维数组的设置操作多维数组第十一章 Caché 多维数组Caché包括对多维数组的支持。多维数组是由一个或多个元素组成的持久变量,每个元素都有唯一的下标。可以混合使用不同种类的下标。下面是MyVar数组的示例:MyVarMyVar(22)MyVar(-3)MyVar(“MyString”)MyVar(-123409, “MyString”)MyVar(“MyString”, 2398)MyVar(1.2, 3, 4原创 2020-05-24 08:16:39 · 1455 阅读 · 0 评论 -
第十章 疯狂Caché 嵌入式代码
文章目录第十章 Caché 嵌入式代码嵌入式HTML`&html`标记语法嵌入式JavaScript嵌入式SQL第十章 Caché 嵌入式代码嵌入式HTML嵌入的HTML语句通过&html指令与其余代码分开,如下例所示:/// d ##class(PHA.TEST.ObjectScript).TestHTML()ClassMethod TestHTML(){ WRITE "start",! &html< <html>原创 2020-05-23 09:19:43 · 602 阅读 · 0 评论 -
第八章 疯狂Caché 调用自定义代码模块(二)
文章目录 第八章 疯狂Caché 调用自定义代码模块(二)参数传递按值传递按引用传递可变数量的参数程序代码程序中的`INDIRECT`、`XECUTE`命令和`JOB`命令程序内的错误陷阱 第八章 疯狂Caché 调用自定义代码模块(二)参数传递程序的一个重要特性是它们支持参数传递。这是一种可以将值(或变量)作为参数传递给过程的机制。当然,参数传递不是必需的;例如,不传递参数的过程可用于生成随机数或以默认格式以外的格式返回系统日期。但是,通常情况下,程序确实使用参数传递。要设置参数传递,请指定:原创 2020-05-19 08:53:28 · 680 阅读 · 2 评论 -
第九章 疯狂Caché 宏和宏预处理器(三)
文章目录 第九章 疯狂Caché 宏和宏预处理器(三)`#SQLCompile Select``#UnDef``##;``##Continue``##Expression``##Expression`和文字字符串`##Expression`嵌套`##Expression`、子类、`##SafeExpression``##Expression`如何工作的`##Function``##Quote``##SQL``##Unique`使用系统提供的宏可访问系统提供的宏系统支持的宏引用ADDSC(sc1, sc2)E原创 2020-05-22 08:57:41 · 711 阅读 · 0 评论 -
第九章 疯狂Caché 宏和宏预处理器(二)
文章目录 第九章 疯狂Caché 宏和宏预处理器(二)`#EndIf``#Execute``#If``#IfDef``#IfNDef``#Import``#Include``#NoShow``#Show``#SQLCompile Audit``#SQLCompile Mode``#SQLCompile Path` 第九章 疯狂Caché 宏和宏预处理器(二)#EndIf#EndIf预处理器指令结束一组预处理器条件。它可以跟在#IfDef、#IfUnDef、#If、#ElseI和#Else之后。它的形式原创 2020-05-21 09:21:48 · 603 阅读 · 0 评论 -
第九章 疯狂Caché 宏和宏预处理器(一)
文章目录第九章 Caché ObjectScript宏和宏预处理器(一)使用宏创建自定义宏宏命名约定。宏空白约定宏注释和Studio助手保存自定义宏调用宏引用外部宏(包括文件)预处理器指令参考`#;``#Def1Arg``#Define`带值的宏宏值的约定没有值的宏JSON转义反斜杠限制`#Dim``#Else`第九章 Caché ObjectScript宏和宏预处理器(一)CachéObjectScript编译器包括预处理器,CachéObjectScript包括对预处理器指令的支持。这些指令允许创建原创 2020-05-20 09:02:35 · 817 阅读 · 0 评论 -
第八章 疯狂Caché 调用自定义代码模块(一)
文章目录 第八章 Caché 调用自定义代码模块(一)Procedures, Routines, Subroutines, Functions, Methods 他们是什么?RoutinesSubroutinesFunctions定义程序调用程序使用`$$`前缀使用`DO`命令程序语法程序变量公有变量与私有变量私有变量与使用NEW创建的变量公开形式列表参数公共和私有程序 第八章 Caché 调用自定义代码模块(一)本章介绍如何创建和调用用户定义的ObjectScript代码模块。这些代码单元可以是用户原创 2020-05-18 09:06:30 · 830 阅读 · 0 评论 -
第七章 疯狂Caché 命令(二)
文章目录 第七章 疯狂Caché 命令(二)流程控制命令有条件执行`IF`, `ELSEIF`, `ELSE`FOR`WHILE` 和 `DO WHILE``I/O` 命令`Write` 命令无参数显示命令显示带有参数的命令`READ``OPEN`, `USE`, `CLOSE` 第七章 疯狂Caché 命令(二)流程控制命令为了建立任何代码的逻辑,必须有流控制;有条件地执行或绕过代码块,或重复执行代码块。为此,ObjectScript支持以下命令:IF, ELSEIF, ELSEFORWHI原创 2020-05-17 08:29:01 · 780 阅读 · 0 评论 -
第七章 疯狂Caché 命令(一)
文章目录第七章 Caché 命令(一)命令关键字命令参数多个参数带参数和后置条件的参数无参数命令无参数命令和花括号命令后置条件表达式后置条件语法计算后置条件一行上有多个命令变量赋值命令`SET``KILL``NEW`代码执行上下文命令调用代码`DO``JOB``XECUTE``QUIT` 和 `RETURN`第七章 Caché 命令(一)命令是CachéObjectScript编程中的基本代码单元。CachéObjectScript中的所有执行任务都由命令执行。每个命令都包含一个命令关键字,后跟(在大多原创 2020-05-16 08:46:21 · 1975 阅读 · 1 评论 -
第六章 疯狂Caché 正则表达式(二)
文章目录第六章 疯狂Caché 正则表达式(二)逻辑运算符字符表示元字符十六进制、八进制和Unicode表示法控制字符表示法符号模式正则表达式序列的模式文本的模式注释嵌入的注释行结束注释错误消息匹配所有字母第六章 疯狂Caché 正则表达式(二)逻辑运算符可以通过将值与逻辑AND(&&)、逻辑OR(|)和减法(--)运算符组合来表示复合字符类型。复合字符类型必须用方括号括起来。隐式OR:可以使用不带逻辑运算符的方括号来指定匹配字符的列表或范围,其中一个必须为TRUE。以下示例匹配所有原创 2020-05-15 08:18:55 · 807 阅读 · 0 评论 -
第六章 疯狂Caché 正则表达式(一)
文章目录第六章 Caché正则表达式(一)通配符和限定符文字和字符范围字符类型元字符单字母字符类型Unicode属性字符类型POSIX字符类型分组构造锚元字符字符串开始或结束字词边界第六章 Caché正则表达式(一)Caché支持正则表达式与以下CachéObjectScript函数$LOCATE和$MATCH以及%Regex.Matcher类的方法一起使用。所有其他Caché子字符串匹配操作都使用Caché模式匹配运算符。本章介绍正则表达式的以下功能:通配符和限定符。示例:.*匹配任意数量的任原创 2020-05-14 08:43:29 · 1122 阅读 · 0 评论 -
第五章 疯狂Caché 运算符和表达式(五)
文章目录 第五章 疯狂Caché 运算符和表达式(五)间接寻址名称间接模式间接参数简介下标间接$TEXT参数间接 第五章 疯狂Caché 运算符和表达式(五)间接寻址CachéObjectScript间接操作符(@)允许间接为变量赋值。间接寻址是一种通过数据字段的内容提供部分或全部命令行、命令或命令参数的动态运行时替换的技术。Caché在执行相关命令之前执行替换。尽管与其他方式相比,间接寻址方式可以更通用的编码,但它从来不是必需的。始终可以通过其他方式复制间接的效果,例如使用XECUTE命令。只有原创 2020-05-13 08:59:35 · 718 阅读 · 0 评论 -
第五章 疯狂Caché 运算符和表达式(四)
文章目录第五章 疯狂Caché 运算符和表达式(四)模式匹配指定模式可以出现的次数指定多个模式指定组合模式指定不确定模式指定交替模式(逻辑或)使用不完整的模式解释多重模式不匹配运算符第五章 疯狂Caché 运算符和表达式(四)模式匹配Caché支持两种模式匹配系统:这里描述的Caché模式匹配是一种用问号(?)分隔模式字符串开头的语法。或(‘?)。正则表达式,许多软件供应商支持的模式匹配语法。正则表达式可以与$LOCATE和$MATCH函数以及%Regex.Matcher类的方法一起使用。这原创 2020-05-12 08:45:35 · 710 阅读 · 0 评论 -
第五章 疯狂Caché 运算符和表达式(三)
文章目录第五章 疯狂Caché 运算符和表达式(三)字符串连接运算符连接编码的字符串数值关系运算符小于大于大于或等于小于或等于字符串关系运算符等于不等于包含不包含跟随不跟随排序不排序第五章 疯狂Caché 运算符和表达式(三)字符串连接运算符字符串运算符(_)是将其操作数解释为字符串并返回字符串值的二进制(两个操作数)运算符。可以使用连接来组合字符串文字、数字、表达式和变量。它采用以下形式:operand_operand串联生成的结果是由追加到左操作数的右操作数组成的字符串。它将它们视为字符串原创 2020-05-11 08:20:43 · 733 阅读 · 0 评论 -
第五章 疯狂Caché 运算符和表达式(二)
文章目录第五章 疯狂Caché 运算符和表达式(二)算术运算符一元正运算符(+)一元负运算符(-)加法运算符(+)减法运算符(-)乘法运算符(*)除法运算符(/)求幂运算符(`**`)整数除法运算符(`\` )取余数(`#`)逻辑比较运算符一元运算符Not优先运算符和逻辑运算符And与非与(NAND)或非或(或非)(NOR)第五章 疯狂Caché 运算符和表达式(二)算术运算符算术运算符将其操作数解释为数值并生成数值结果。在对字符串进行操作时,算术运算符会根据“字符串到数字转换”一节中描述的规则,将该原创 2020-05-10 10:10:25 · 821 阅读 · 0 评论 -
第五章 疯狂Caché 运算符和表达式(一)
文章目录第五章 Caché 运算符和表达式运算符和表达式简介运算符符号表运算符优先一元负运算符括号和优先顺序函数和优先级表达式逻辑表达式赋值字符串到数字的转换数字字符串非数字字符串第五章 Caché 运算符和表达式Caché支持许多不同的运算符,这些运算符执行各种操作,包括数学操作、逻辑比较等。运算符作用于表达式,表达式是最终计算为某个值的变量或其他实体。运算符和表达式简介运算符是指定要对其关联操作数执行的操作的符号字符。每个操作数由一个或多个表达式或表达式原子组成。一起使用时,运算符及其关联的操作原创 2020-05-09 09:09:24 · 1347 阅读 · 3 评论 -
第四章 疯狂Caché 变量
文章目录 第四章 变量变量类别局部变量命名约定无效命名类型、用法和范围进程-私有全局变量命名约定列表进程-私有全局变量全局变量global下标变量数组变量特殊变量对象属性变量类型和转换对象值变量声明和范围使用#Dim 第四章 变量变量是可以存储值的位置的名称。在CachéObjectScript中,变量没有关联的数据类型,不必声明它。通常,可以使用set命令通过为变量赋值来定义变量。可以将空...原创 2020-05-08 09:11:24 · 1182 阅读 · 0 评论 -
第三章 疯狂Caché 数据类型和值
文章目录第三章 Caché 数据类型和值String 字符串转义引号连接字符串字符串比较字母和字符串比较长字符串位字符串 Bit StringsNumbers 数字数的基本原理数的标准型数字形式的字符串连接数字小数科学记数法极大数字对象未定义的值布尔值日期第三章 Caché 数据类型和值CachéObjectScript是一种无类型语言。不必声明变量的类型。任何变量都可以有字符串、数值或对象值...原创 2020-05-07 08:47:38 · 2079 阅读 · 1 评论 -
第二章 疯狂Caché 语法规则
文章目录第二章 Caché 语法规则区分大小写标识符Unicode空格注释例程和方法的int代码中的注释例程和方法的MAC代码中的注释方法代码之外的类定义中的注释文字值字符串文字值数字文字标识符标识符内的标点符号标签使用标签结束标有标签的代码部分命名空间扩展参考文献保留字第二章 Caché 语法规则区分大小写ObjectScript的某些部分区分大小写,而其他部分不区分大小写。一般来说,Ob...原创 2020-05-06 09:24:11 · 1664 阅读 · 5 评论 -
第一章 疯狂Caché 介绍CachéObjectScript
文章目录第一章 Caché 介绍CachéObjectScript简介特点语言概述调用命令和功能语句和命令函数表达式变量运算符与ISO标准M的关系第一章 Caché 介绍CachéObjectScript简介CachéObjectScript是一种对象编程语言,旨在快速开发复杂的业务应用程序。它非常适合各种应用,包括:商业逻辑应用整合数据处理CachéObjectScript源代...原创 2020-05-05 09:00:58 · 2788 阅读 · 0 评论