百讲知识点索引
百讲知识点索引
简介
- B站已更新截止到
2023.12.31之前的所有百讲课程,总计261讲。 - 什么是百讲?百讲是一个主要介绍
IRIS、Cache编程知识的免费课程。 - 课程的特点是,将每一个知识点,都会用示例演示出来、了解原理,而不是仅仅告诉有这个功能。
- 每周一期,每期会请到有多年开发经验的老师来给大家讲解课程。
- 百讲观看地址:https://www.bilibili.com/video/BV1cw41147xr/

知识点索引
-
第
1讲IRISObjectScript简介ObjectScript特点
-
第
2讲 初识ObjectScript程序- 概述
- 变量
- 支持几种变量
- 表达式
- 函数
-
第
3讲 语法规则- 区分大小写
- 空格
- 不需要空格
- 需要空格
- 注释
- 字面常量
- 标识符
- 标签
-
第
4讲 数据类型 - 字符串 -
第
5讲 数据类型 - 位串 -
第
6讲 数据类型 - 数字- 数字字符串
- 科学记数法
- 符号配置
- 规范数字
- 混合数字
- 小数
- 最大数
-
第
7讲 数据类型 - 对象 -
第
8讲 数据类型 - 布尔 -
第
9讲 数据类型 - 日期 -
第
10讲 变量- 局部变量
- 百分比变量
ProcedureBlock使用- 进程私有
Global - 使用
^GETPPGINFO - 全局变量
Global - 数组变量
- 变量类型和转换
- 使用#Dim定义变量类型
-
第
11讲 运算符 - 逻辑运算符- 运算符符号表
- 运算符优先级
- 逻辑比较运算符
- 逻辑表达式
Not运算符(')
-
第
12讲 运算符 - 算术运算符- 一元运算符
- 加法运算符(
+) - 减法运算符(
-) - 乘法运算符(
*) - 除法运算符(
/) - 求幂运算符(
**) - 整除运算符(
\) - 取余运算符(
#)
-
第
13讲 关系运算符- 数值关系运算符
- 小于
` - 大于`> - 大于等于
>= - 小于等于
=` - 字符串关系运算符 - 等于`=` - 不等于`'=` - 包含`[` - 不包含`'[` - 跟随`]` - 不跟随`']` - 排序`]]` - 非排序`']]` - 第`14`讲 运算符 - 模式匹配 - 模式代码 - 模式可以出现的次数 - 多组模式 - 组合模式 - 交替模式 - 使用不完整的模式 - 多重模式解释 - 非模式匹配运算符 - 模式复杂性 - 第`15`讲 运算符 - 间接寻址 - 名称间接寻址 - 模式匹配间接寻址 - 参数间接寻址 - 下标间接寻址 - `$TEXT`参数间接寻址 - 第`16`讲 命令梗概 - 通用概念 - 命令后置条件表达式 - 第`17`讲 命令 - 赋值命令 - `Set`命令 - `Kill`命令 - 使用参数传递对`KILL`影响 - `Zkill`命令 - `New`命令 - `Merge`命令 - 第`18`讲 命令 - 条件命令 - `if`,`elseif`,`else`命令 - `IF`中使用`QUIT` - `IF`中使用`GOTO` - 第`19`讲 命令 - 循环命令 - `For`命令 - `while`命令 - `Do While`命令 - 第`20`讲 命令 - 退出命令 - `Continue`命令 - `Quit`命令 - `Retrun`命令 - 第`21`讲 命令 - 输出命令 - `WRITE`命令 - 有参数`WRITE` - 无参数`WRITE` - `ZWRITE`命令 - `ZZDUMP`命令 - `ZZWRITE`命令 - `WRITE`,`ZWRITE`,`ZZDUMP`,`ZZWRITE`异同 - 第`22`讲 命令 - 调用命令 - `Do`命令 - 第`23`讲 命令 - 调用命令 - `JOB` - 第`24`讲 命令 - 调用命令 - `JOB` - 使用多进程 - 第`25`讲 命令 - 调用命令 - `JOB` - 消息队列 - 第`26`讲 命令 - 调用命令 - `XECUTE`命令 - 第`27`讲 命令 - 调用命令 - `GOTO`命令 - 第`28`讲 方法 - 方法概念 - `Routines` - `Subroutines` - `Functions` - `Label` - `Procedures` - `Methods` - `ClassMethods` - `SystemFunctions` - `Program` - 简单区别 - 第`29`讲 参数 - 参数传递 - 按值传递 - 按引用传递 - 可变参数 - 第`30`讲 嵌入式代码 - 嵌入式`HTML` - `&html`标记语法 - 嵌入式`JavaScript` - 嵌入式`SQL` - 第`31`讲 多维数组 - 什么是多维数组 - 多维树形结构 - 稀疏多维存储 - 多维数组的设置 - 操作多维数组 - 多维数组,进程全局变量,全局变量效率对比 - 第`32`讲 系统函数梗概 - 第`33`讲 分隔函数 `$PIECE` - 两种用法 - 使用`SET $PIECE`替换子字符串 - 第`34`讲 截取函数 `$EXTRACT` - 两种用法 - 使用`SET $EXTRACT`替换子字符串 - `DTM`模式下的`$EXTRACT` - 第`35`讲 长度函数 `$LENGTH`,对齐函数 `$JUSTIFY`,查找函数 `$FIND`,反转函数 `$REVERSE` - 第`36`讲 转换函数 `$ZCONVERT` - 第`37`讲 替换函数 `$REPLACE`,`$TRANSLATE`,`$CHANGE` - 比较`$CHANGE`, `$REPLACE`, `$TRANSLATE`函数 - 第`38`讲 数组函数 - `$LISTBUILD` - `SET $LISTBUILD` - 第`39`讲 数组函数 - `$LIST` - `$List`错误情况 - 使用`SET $LIST`替换元素 - 第`40`讲 `$LIST`与`$EXTRACT`和`$PIECE`区别 - 第`41`讲 数组函数 - `$LISTDATA` - 第`42`讲 数组函数 - `$LISTFIND` - 第`43`讲 数组函数 - `$LISTGET` - 第`44`讲 数组函数 - `$LISTLENGTH` - 第`45`讲 数组函数 - `$LISTNEXT` - 第`46`讲 效率 - 对比遍历取值`$LISTDATA`,`$LIST`,`$LISTGET`,`$LISTNEXT` - 第`47`讲 数组函数 - `$LISTSAME` - 第`48`讲 数组函数 - `$LISTFROMSTRING`,`$LISTTOSTRING` - 第`49`讲 数组函数 - `$LISTUPDATE` - 第`50`讲 数组函数 - `$LISTVALID` - 第`51`讲 示例 - 结合所有列表函数 - 总结 - 第`52`讲 正则表达式 - 通配符 - 限定符 - 字符组区间 - 特殊字符 - 取反 - 单字母字符类型 - 字词边界 - 字符串开始或结束 - 分组 - 第`53`讲 正则表达式函数 - `$MATCH` - `Unicode`属性字符类型 - `POSIX`字符类型 - 分组构造 - 字符边界 - 十六进制表示法 - 八进制表示法 - `Unicode`表示法 - 汉字 `Unicode` 编码范围 - 控制字符表示法 - 符号表示法 - 模式 - `Case`模式 - 单行模式 - 文本模式 - 注解 - 行内注释 - 行末注释 - 错误信息 - 第`54`讲 正则表达式函数 - `$LOCATE` - 第`55`讲 正则表达式函数 - `$ZSTRIP` - 第`56`讲 正则表达式类 - `%Regex.Matcher` - 第`57`讲 对比 `MATCH`、`LOCATE`、`ZSTRIP`、`%Regex.Matcher`异同 - 第`58`讲 什么是宏?宏的简单使用 - 什么是宏? - 宏命名规范 - 宏的空格规范 - 宏的简单使用 - 第`59`讲 .inc文件的使用 - 如何创建`inc`文件 - 如何引用外部宏 - 第`60`讲 宏预处理器 - 定义指令 - `#Def1Arg`、`#Define`、`#Dim`、`##Continue` - 第`61`讲 宏预处理器 - 条件指令 - `#If`、`#ElseIf`、`#Else`、`#EndIf`、`#IfDef`、`#IfNDef`、`#UnDef` - 第`62`讲 宏预处理器 - 编译指令 - `#Execute`、`##Expression`、`##SafeExpression`、`##Function`、`##Lit` - 异同 - 第`63`讲 宏预处理器 - `SQL`指令 - `#Import`、`#SQLCompile Audit`、`#SQLCompile Mode`、`#SQLCompile Path`、`#SQLCompile Select`、`##SQL` - `#Import`和`#SQLCompile` 区别 - 第`64`讲 宏预处理器 - 其他指令 - `#Include`、`#Show`、`#NoShow` 、`#;`、`##;`、`##Quote`、`##Unique` - 第`65`讲 使用系统宏 - `%occStatus.inc`内的宏 - 第`66`讲 如何使用 `%Status` 数据类型 - 第`67`讲 锁 - `LOCK`命令 - 什么是锁? - 怎么实现这个锁? - 锁的分类 - LOCK 命令 - 参数 - 第`68`讲 锁 - `LOCK` 命令的两种基本形式 - `LOCK`命令的两种基本形式 - 不带参数的锁 - 有参数锁 - 第`69`讲 锁 - 独占锁 - 第`70`讲 锁 - 共享锁 - 第`71`讲 锁 - 升级锁 - 第`72`讲 锁 - 立即解锁 - 第`73`讲 锁 - 延迟解锁 - 第`74`讲 锁 - 增量锁 - 第`75`讲 锁 - 锁类型总结 - 第`76`讲 锁 - `^$LOCK` 结构化系统变量 - 第`77`讲 锁 - 使用`Portal`管理锁 - 查看锁表 - 使用锁表删除锁 - 其他方式删除锁 - 第`78`讲 锁 - 使用`^LOCKTAB`实用程序 - 输入`"?"`,显示帮助信息: - 使用命令`D`删除一个锁。 - 使用命令`J`删除进程中的所有锁。 - 使用命令`C`删除系统中的所有锁。 - 使用命令`A`删除所有锁。 - 第`79`讲 锁 - 等待锁 - 多进程父子节点加锁 - 多进程父子节点加锁顺序 - 第`80`讲 锁 - 死锁 - 什么是死锁 - 死锁 - 预防死锁 - 解决死锁 - 第`81`讲 锁 - 注意点总结 - 第`82`讲 代码规范 - 变量 - 第`83`讲 代码规范 - 方法 - 第`84`讲 代码规范 - 类 - 第`85`讲 代码规范 - 锁 - 第`86`讲 代码规范 - 事务 - 第`87`讲 代码规范 - 陷阱 - 第`88`讲 代码规范 - 空行 - 第`89`讲 代码规范 - 格式 - 第`90`讲 代码规范 - 注释 - 第`91`讲 事务 - 什么是事务? 事务的特性 - 什么是事务? - 事务的特性 - 事务嵌套的层数 - 事务与日志的同步提交 - 第`92`讲 事务 - 事务命令 - `TSTART` - `TCOMMIT` - `TROLLBACK` - 回滚错误`的几种情况 SQL命令与ObjectScript命令对照
-
第
93讲 事务 - 什么可回滚,什么不可回滚?- 事务不可回滚
- 事务锁
-
第
94讲 事务 -SQL事务命令SET TRANSACTIONSTART TRANSACTIONCOMMITROLLBACKSAVEPOINT%INTRANSACTION
-
第
95讲 事务 -$TLEVEL变量Terminal显示事务层数SQL命令和$TLEVEL
-
第
96讲 事务 - 嵌套事务的几种情况 -
第
97讲 事务 - 事务使用的基本示例 -
第
98讲 事务 - 事务提交方式IMPLICIT显式事务(自动事务)EXPLICIT隐式事务(关闭自动事务)NONE没有自动事务处理
-
第
99讲 事务 - 并发事务带来的问题 - 脏读 -
第
100讲 事务 - 并发事务带来的问题 - 丢失更新 -
第
101讲 事务 - 并发事务带来的问题 - 不可重复读 -
第
102讲 事务 - 并发事务带来的问题 - 幻读 -
第
103讲 事务 - 并发事务带来的问题总结- 通俗解释
- 不可重复读和脏读、幻读的区别
- 不可重复读和脏读的区别
- 不可重复读和幻读区别
-
第
104讲 事务 - 隔离级别 -READ UNCOMMITTEDREAD UNCOMMITTED(读取未提交数据)
-
第
105讲 事务 - 隔离级别 - READ COMMITTEDREAD COMMITTED(读取已提交数据)
-
第
106讲 事务 - 隔离级别 - REPEATABLE READREPEATABLE READ(可重复读)
-
第
107讲 事务 - 隔离级别 -SERIALIZABLESERIALIZABLE(可串行化)
-
第
108讲 事务 - 隔离级别 - 总结SNAPSHOT:快照- 数据库隔离级别总结
- 实现事务隔离级别时加锁原理总结
-
第
109讲 事务 - 查看事务日志 - 增删改对日志的影响- 查看日志
- 在日志中查看
INSERT数据 - 在日志中查看
UPDATE数据 - 在日志中查看
DELETE数据 - 在日志中查看声明的事务
- 在日志中查看嵌套事务
-
第
110讲 事务 - 通过日志恢复被删除的数据- 模拟删表操作
- 如何恢复数据
-
第
111讲 事务 - 开放性事务原理以及如何检测开放性事务- 问题
- 定义
- 模拟开放性事务
- 开放性事务状态
- 发生开放性事务的几种可能
- 开放性事务能带来哪些问题
- 如何判断开放性事务
- 如何解决开放性事务
-
第
112讲 错误处理 -TRY命令TRY - CATCH机制
-
第
113讲 错误处理 -CATCH命令CATCH命令有两种形式- 有参数
CATCH - 无参数
CATCH
- 有参数
-
第
114讲 错误处理 -THROW命令- 有参数
THROW - 无参数
THROW
- 有参数
-
第
115讲 错误处理 -ZTRAP命令 -
第
116讲 错误处理 -$ZTRAP变量 -
第
117讲 错误处理 - 错误处理的工作机制原理 -
第
118讲 错误处理 -$ETRAP变量 -
第
119讲 错误处理 -$ZERROR变量以及常见错误类型- 显示
$ze格式错误 - 错误的附加信息
- 显示
-
第
120讲 错误处理 -$ECODE变量 -
第
121讲 错误处理 -$THROWOBJ变量 -
第
122讲 错误处理 -TRY - CATCH,$ZTRAP,$ETRAP区别与错误处理工具推荐 -
第
123讲 错误处理 - 堆栈 -$STACK变量 -
第
124讲 错误处理 - 堆栈 -$ESTACK变量 -
第
125讲 错误处理 - 堆栈 -$STACK函数$STACK的单参数形式$STACK的两个参数形式
-
第
126讲 错误处理 - 堆栈 - 手写记录错误堆栈调用信息 -
第
127讲 错误处理 - 堆栈 -Terminal中显示程序堆栈信息Terminal字母代码
-
第
128讲 错误处理 - 堆栈 -%Stack实用程序 -
第
129讲 错误处理 - 使用系统日志并查看错误堆栈信息 -
第
130讲 错误处理 - 使用%ERN查看应用程序错误日志 -
第
131讲 错误处理 - 常见的返回值错误处理- 用分隔符返回错误代码与描述信息。常见的分隔符
^、,等。- 将
JSON处理错误方式返回。 %Status方式返回。SQLCODE方式返回错误。
- 将
- 用分隔符返回错误代码与描述信息。常见的分隔符
-
第
132讲 错误处理 - 手写通用错误异常处理方式,包含日志,堆栈。$Ztrap与Try-Catch双保险方式捕捉异常- 原理
$Ztrap方式捕捉ZTrap抛出异常
-
第
133讲 调试 -BREAK命令 - 基本使用BREAK命令有三种形式- 无参
BREAK
-
第
134讲 调试 -BREAK命令 - 逐步逐行调试BREAK Extended参数以设置常规断点
-
第
135讲 调试 -BREAK命令 - 中断运行中的程序Flag参数
-
第
136讲 调试 -ZBREAK命令 - 基本使用- 基本语法
ZBREAK帮助文档- 无参数
ZBREAK BREAK与ZBREAK的区别
-
第
137讲 调试 -ZBREAK命令 - 使用断点和监视点- 建立断点和监视点
action参数值
-
第
138讲 调试 -ZBREAK命令 - 跟踪并输出监视变量值- 跟踪并输出监视变量值
-
第
139讲 调试 -ZBREAK命令 - 将调试信息输出到日志txt- 将调试信息输出到日志
txt
- 将调试信息输出到日志
-
第
140讲 调试 - 使用Stuido调试 -
第
141讲 调试 - 使用监视窗口与监视点- 调试菜单
- 监视窗口
- 监视点
-
第
142讲 调试 - 根据进程调试 -
第
143讲 调试 - 调试CSP页面 -
第
144讲 - 类 - 包 - 定义- 概念
- 定义包
- 注意事项
-
第
145讲 - 类 - 包 - 包映射- 映射通用包
-
第
146讲 - 类 - 包 - 使用包- 在类中引用包
- 导入包
ObjectScript方法中引入包
-
第
147讲 类 - 参数 - 定义使用类参数- 概念
- 使用场景
- 定义参数
- 使用参数值
-
第
148讲 类 - 参数 - 类参数类型- 运行时计算的类参数
- 编译时计算的类参数
-
第
149讲 类 - 参数 - 运行时更改类参数值与参数关键字- 在运行时更改类参数
- 参数关键字
-
第
150讲 类 - 方法 - 定义方法- 概念
- 类别
- 定义方法
- 方法参数
-
.第
151讲 类 - 方法 - 使用类方法与实例方法 -
第
152讲 类 - 方法 - 方法关键字- 方法关键字列表
- 关键字
Language- 指定实现语言 - 关键字
CodeMode- 方法实现方式 - 关键字
SqlProc- 将方法映射为存储过程 - 关键字
SqlName- 自定义存储过程名称 - 关键字
Abstract- 抽象方法 - 关键字
Final- 指定方法为最终方法 - 关键字
Private- 指定方法为私有方法
-
第
153讲 方法生成器 - 原理 -
第
154讲 方法生成器 - 可用对象简介与示例- 方法生成器可用对象
- 定义方法生成器示例
-
第
155讲 方法生成器 - 父子类中的区别- 方法生成器在父子类中的区别
-
第
156讲 类 - 对象 -%RegisteredObject类- 对象类
OREF
-
第
157讲 类 - 对象 -%RegisteredObject类常用方法 -
第
158讲 类 - 对象 - 继承与父类类型转换 -
第
159讲 类 - 属性 - 简介- 定义属性
- 使用对象属性
i%PropertyName(实例变量)
-
第
160讲 类 - 属性 - 常用关键字- 属性关键字列表
InitialExpression关键字 - 设置属性定义初始值Required关键字 - 设置属性字段不能为nullMultiDimensional- 关键字定义多维属性Aliases- 为属性指定别名ReadOnly- 指定属性为只读
-
第
161讲 类 - 属性 - 计算属性SqlComputed关键字与SqlComputeCode关键字SqlColumnNumber关键字设置属性的SQL列号SqlFieldName设置SQL字段名- 使用关键字定义计算代码
- 使用回调方法定义计算代码
SqlComputeOnChange关键字Transient关键字Calculated关键字
-
第
162讲 类 - 属性 - 属性访问器- 设置属性访问器
- 通过
IDE创建属性访问器 - 重写属性获取器方法
- 对象属性的属性访问器
PropGetStored()方法 - 直接从磁盘加载数据- 测试效率对比
-
第
163讲 类 - 数据类型类 - 简介- 数据类型类的类型
- 数据类型类的功能
- 数据类型类的区别
- 常用的数据格式类型
-
第
164讲 类 - 数据类型类 - 常用数据类型与映射- 什么是
ODBC,JDBC - 常用数据类型类
- 常用数据类型映射
- 按
SqlCategory映射数据类型类 - 按
OdbcType映射数据类型类 - 按
ClientDataType分组的数据类型类
- 什么是
-
第
165讲 类 - 数据类型 - 属性方法- 使用属性方法
-
第
166讲 类 - 数据类型 - 数据类型参数- 数据类型参数
- 常用数据类型类可使用参数
- 使用参数
- 参数使用示例
-
第
167讲 类 - 数据类型 - 自定义数据类型类 -
第
168讲 类 -%Persistent- 持久类简介与定义- 简介
- 定义持久类
- 包映射模式
- 持久类与
SQL映射关系 - 保存对象标识符:
ID和OID - 持久类成员
-
第
169讲 类 -%Persistent-Storage定义与Storage类%Storage.Persistent存储类%Storage.SQL存储类%Storage.Persistent与%Storage.SQL区别- 注意事项
-
第
170讲 类 -%Persistent-Global使用 -
第
171讲 类 -%Persistent- 生成ID相关事项 -
第
172讲 类 -%Persistent- 哈希Global -
第
173讲 类 -%Persistent- 子类拓展使用- 持久类子类数据存储情况
- 父子类均为持久类
- 父类
NoExtent子类持久类
- 持久类子类数据存储情况
-
第
174讲 类 -%Persistent- 常用关键字SqlTableName关键字 - 设置表名称SqlRowIdName关键字 - 设置ID列名称SqlRowIdPrivate关键字 - 隐藏ID列StorageStrategy关键字 - 指定StorageDdlAllowed关键字 - 指定是否可以使用DDL语句
-
第
175讲 类 -%Persistent- 持久类常用方法%Save()- 保存对象%Save()方法执行逻辑详解%Save()回滚%Save()事务%Id()- 返回持久对象ID%Oid()- 返回持久对象OID%ExistsId()- 测试持久对象ID是否存在%OpenId- 打开保存的对象- 多次调用相同ID的
%OpenId()情况分析 %Reload()- 重新加载对象%DeleteId()- 根据ID删除保存的对象%Delete()根据OID删除保存的对象%DeleteExtent()- 删除所有保存的对象%KillExtent()- 强制删除该表数据READONLY参数 - 指定数据库为只读
-
第
176讲 类 -%Persistent-SwizzlingSwizzling- 懒加载、交错存储、重组存储
-
第
177讲 类 -%Persistent-Extent查询 -
第
178讲 类 -%Persistent- 并发分析- 为什么使用并发参数
- 设置并发的几种方式
- 可以用的并发值
concurrency设置为0- 无锁。concurrency设置为1- 保存后获取独占锁。concurrency设置为2- 与1相同concurrency设置为3- 总是获取共享锁。concurrency设置为4- 总是获取独占锁。
- 通过
$system.OBJ.SetConcurrencyMode设置当前进程并发值 - 并发参数的代替方法
-
第
179讲 类 -%Persistent- 使用列存储 -
第
180讲 类 - 集合 - 简介- 集合的类型
- 集合属性
- 独立集合
-
第
181讲 类 - 集合 - 使用列表集合- 使用列表
List集合
- 使用列表
-
第
182讲 类 - 集合 - 使用数组集合- 使用数组
Array集合
- 使用数组
-
第
183讲 类 - 集合 - 在持久类中使用基础数据列表- 持久类中集合属性的
SQL映射 - 使用基础数据
list列表
- 持久类中集合属性的
-
第
184讲 类 - 集合 - 在持久类中使用对象列表- 使用对象
list列表
- 使用对象
-
第
185讲 类 - 集合 - 在持久类中使用序列化列表- 使用序列化
list列表
- 使用序列化
-
第
186讲 类 - 集合 - 在持久类中使用基础数据数组- 使用基础数据
array数组
- 使用基础数据
-
第
187讲 类 - 集合 - 在持久类中使用对象数组- 使用对象
array数组
- 使用对象
-
第
188讲 类 - 集合 - 在持久类中使用序列化数组- 使用序列化
array数组
- 使用序列化
-
第
189讲 类 - 集合 - 集合属性参数- 集合属性参数
STORAGEDEFAULT参数SQLTABLENAME参数SQLPROJECTION参数
- 集合属性参数
-
第
190讲 流 - 简介- 常用流对象
- 二进制流和文本流的区别
-
第
191讲 流 - 在持久类中使用流属性 -
第
192讲 流 - 常用方法和属性-
%Stream- 流常用方法和属性Read()- 从流的当前位置开始读取指定数量的字符。Write()- 从当前位置开始,将数据追加到流中。如果位置未设置为流的末尾,则覆盖现有数据。Rewind()- 移至流的开头。NewFileName()- 为%Stream.FileCharacter或%Stream.FileBinary属性指定文件名。
-
常用的属性
AtEnd- 当读取遇到数据源的末尾时,设置为true。Id- 在%Location指定的范围内,流实例的唯一标识符。Size- 流的当前大小(以字节或字符为单位,取决于流的类型)。
-
-
第
193讲 流 - 流中指定编码格式TranslateTable- 指定读取或写入%Stream.FileCharacter流的字符集编码类型。Filename-%Stream.FileBinary流当前使用的文件名,文件名包含路径+文件名。
-
第
194讲 流 - 复制视频文件CopyFrom()- 所有流都包含一个CopyFrom()方法,该方法复制一个流填充到另一流。LinkToFile()- 类似于Filename属性,将文件流连接到名为Filename的文件。如果指定的文件不存在,则在%Save()后创建。
-
第
195讲 流 - 在已有文件中追加数据MoveToEnd()- 移动到流的末尾。%Save()- 当将流类用作独立对象时,使用%Save()方法来保存流数据。
-
第
196讲 流 - 使用gzip压缩文件 -
第
197讲 流 - 通过嵌入式对象写入流- 通过嵌入式
SQL读取流 - 通过嵌入式
SQL写入流
- 通过嵌入式
-
第
198讲 流 - 使用压缩流 -
第
199讲%SerialObject- 序列化对象简介- 对象组合
-
第
200讲%SerialObject- 序列化对象使用- 定义序列化对象
- 使用序列化类
-
第
201讲 类 -XData- 介绍使用- 结构
- 关键字
- 使用
XDataXML示例JSON示例YAML示例
-
第
202讲 类 -Projection映射 - 介绍使用- 使用类映射
-
第
203讲 类 - 关系 - 简介- 类型
- 定义关系
- 关系属性如何保存
-
第
204讲 类 - 关系 - 定义一对多关系 -
第
205讲 类 - 关系 - 删除一对多关系 -
第
206讲 类 - 关系 - 使用关键字OnDelete -
第
207讲 类 - 关系 - 定义主子关系 -
第
208讲 类 - 关系 - 删除主子关系 -
第
209讲 类 - 关系 - 在SQL查询中使用关系 -
第
210讲 类 - 关系 - 使用关系定义多对多关系 -
第
211讲 类 - 关系 - 使用外键定义多对多关系 -
第
212讲Query- 简介与基本使用 -
第
213讲Query- 自定义Query基本使用 -
第
214讲Query- 通过%SQL.Statement,%ResultSet使用Query- 使用
%SQL.Statement对象调用Query - 使用
%ResultSet对象调用Query
- 使用
-
第
215讲Query- 通过Json数据或方法动态生成Query -
第
216讲Query- 通过Select Sql语句动态生成Query -
第
217讲Query- 通过Query生成动态Query -
第
218讲Query- 支持传统的Query并通过参数形式生成Query列 -
第
219讲Query- 定义通用Query,只需要实现Exceute方法 -
第
220讲Query- 通过Query生成Json,通过Query生成Csv -
第
221讲 生命周期回调方法 - 从新建到保存-
回调方法列表
%OnNew()%OnAddToSaveSet()%OnBeforeSave()%OnAfterSave()%OnSaveFinally()%OnValidateObject()%OnRollBack()%OnClose()
-
%Save回调示例
-
-
第
222讲 生命周期回调方法 - 从打开到删除%OnOpen()%OnOpenFinally()%OnReload()%OnConstructClone()%OnAfterDelete()%OnDelete()%OnDeleteFinally()%Delete示例
-
第
223讲 生命周期回调方法 - 索引%OnBeforePurgeIndices()%OnAfterPurgeIndices()%OnBeforeBuildIndices()%OnAfterBuildIndices()%BuildIndices示例
-
第
224讲 填充工具 - Populate实用程序简介%Library.PopulateUtils填充方法列表- 数据填充
Populate()方法简介
-
第
225讲 填充工具 - 集合属性- 集合属性
-
第
226讲 填充工具 - 引用序列化对象的属性 -
第
227讲 填充工具 - 关系- 一对多关系
- 主子关系
- 填充顺序
-
第
228讲 填充工具 - 引用持久对象的属性 -
第
229讲 填充工具 - 为非集合属性指定POPSPEC参数 -
第
230讲 填充工具 - 为列表属性指定POPSPEC参数 -
第
231讲 填充工具 - 为数组属性指定POPSPEC参数 -
第
232讲 填充工具 - 通过SQL表指定POPSPEC参数 -
第
233讲 填充工具 - 基于另外一个属性生成 -
第
234讲 动态派发- 动态派发方法
%DispatchMethod()%DispatchClassMethod()%DispatchGetProperty()%DispatchSetProperty()%DispatchSetMultidimProperty()
- 动态派发方法
-
第
235讲 动态派发 - 动态属性示例 -
第
236讲JSON- 简介- 动态
JSON简介 JSON简单使用示例- 创建和操作动态实体
- 动态
-
第
237讲JSON- 使用JSON文本构造器- 使用字符串
JSON构造函数创建动态实体 - 使用
JSON文本构造器
- 使用字符串
-
第
238讲JSON- 使用动态表达式和点语法- 使用动态表达式和点语法
- 使用点语法创建动态对象属性
- 使用点语法创建动态数组元素
-
第
239讲JSON- 使用%Set(),%Get(),%Remove()- 使用
%Set(),%Get(),%Remove() - 使用
%Set()、%Get()和%Remove()以编程方式指定JSON的键和值 - 使用
%Get()和%Remove()检索嵌套的动态实体 - 删除对象属性
- 删除数组元素
- 使用
-
第
240讲JSON- 链式动态实体方法 -
第
241讲JSON- 错误处理 -
第
242讲JSON- 序列化与反序列化- 将动态实体转换
JSON字符串 - 将
JSON字符串反序列化为动态对象 - 在嵌套复杂动态实体和
JSON字符串之间进行转换
- 将动态实体转换
-
第
243讲JSON- 克隆JSON对象 -
第
244讲JSON- 迭代JSON- 使用
%GetNext()遍历动态实体 - 遍历数组
- 遍历对象
- 使用
-
第
245讲JSON- 解决JSON字符串超长问题- 将大型动态实体序列化为流
- 读取和写入
Global字符流 Json写入文件流
-
第
246讲JSON- 动态数组中的null值 -
第
247讲JSON- 在数组中使用%Remove -
第
248讲JSON- 使用%Size()的数组迭代 -
第
249讲JSON- 使用%IsDefined()测试有效值 -
第
250讲JSON- 在动态数组中使用%Push和%Pop- 使用
%Push()和%Pop()构建一个数组并销毁
- 使用
-
第
251讲JSON- 处理JSON数据类型- 使用
%GetTypeOf()返回值的数据类型 - 迭代和数据类型检测
- 区分动态数组,动态对象和
oref
- 使用
-
第
252讲JSON- 用%Set()或%Push()重写覆盖默认数据类型- 用
%Set()或%Push()重写覆盖默认数据类型
- 用
-
第
253讲JSON- 解析JSON空值和布尔值- 解析
JSON空值和布尔值
- 解析
-
第
254讲JSON- 解决Null、空字符串和未赋值- 解决
Null、空字符串和未赋值
- 解决
-
第
255讲JSON- 动态实体方法概览-
创建、读取、更新、删除
%Set()可以更改现有动态实体成员属性或元素的值,也可以创建新成员并为其赋值。%Remove()删除现有成员。%Get()检索成员的值。
-
迭代数组
%GetIterator()返回一个迭代器,其中包含指向动态实体每个成员的指针。%GetNext()返回迭代器标识的成员的键和值,并将光标移到下一个成员。%Size()返回成员数包括数组中未分配的元素。%IsDefined()测试成员是否具有指定的值。
-
堆栈功能
%Push()将新元素添加到动态数组的末尾。%Pop()删除数组的最后一个元素并返回其值。这些方法不适用于动态对象,因为对象属性不是按可预测的顺序存储的。
-
序列化和反序列化
%FromJSON()将JSON字符串转换为动态实体。%FromJSONFile()%ToJSON()将动态实体序列化为规范JSON字符串。
-
数据类型
%GetTypeOf()返回一个字符串,该字符串指示指定成员值的数据类型。%Set()和%Push()提供一个可选的第三个参数来显式地指定值的数据类型。
-
-
第
256讲JSON-%JSON.Adaptor- 简介,对象与JSON互转- 导入导出
- 实体类继承
%JSON.Adaptor - 将对象导出为
JSON字符串 - 将
JSON字符串导入到对象中
-
第
257讲JSON-%JSON.Adaptor- 使用参数映射%JSONFIELDNAME%JSONINCLUDE%JSONIGNOREINVALIDFIELD%JSONIGNORENULL%JSONNULL%JSONREFERENCE%JSONIGNOREINVALIDFIELD
-
第
258讲JSON-%JSON.Adaptor- 使用XData映射块- 定义扩展数据映射块
-
第
259讲JSON-%JSON.Adaptor- 格式化JSON- 格式化
JSON
- 格式化
-
第
260讲%Dictionary- 是什么怎么用- 类别
- 判断类关键字是否存在
- 查看类定义
- 修改类定义
-
第
261讲%Dictionary- 类成员对应哪些表- 类定义类说明