百讲知识点索引

百讲知识点索引

简介

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

在这里插入图片描述

知识点索引

  • 1IRIS ObjectScript 简介

    • 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讲 命令 - 条件命令

    • ifelseifelse命令
    • IF中使用QUIT
    • IF中使用GOTO
  • 19讲 命令 - 循环命令

    • For命令
    • while命令
    • Do While命令
  • 20讲 命令 - 退出命令

    • Continue命令
    • Quit命令
    • Retrun命令
  • 21讲 命令 - 输出命令

    • WRITE命令
      • 有参数WRITE
      • 无参数WRITE
    • ZWRITE命令
    • ZZDUMP命令
    • ZZWRITE命令
    • WRITEZWRITEZZDUMPZZWRITE异同
  • 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讲 对比 MATCHLOCATEZSTRIP%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
    • 回滚错误<ROLLFAIL>的几种情况
    • SQL命令与ObjectScript命令对照
  • 93讲 事务 - 什么可回滚,什么不可回滚?

    • 事务不可回滚
    • 事务锁
  • 94讲 事务 - SQL 事务命令

    • SET TRANSACTION
    • START TRANSACTION
    • COMMIT
    • ROLLBACK
    • SAVEPOINT
    • %INTRANSACTION
  • 95讲 事务 - $TLEVEL 变量

    • Terminal显示事务层数
    • SQL命令和$TLEVEL
  • 96讲 事务 - 嵌套事务的几种情况

  • 97讲 事务 - 事务使用的基本示例

  • 98讲 事务 - 事务提交方式

    • IMPLICIT 显式事务(自动事务)
    • EXPLICIT 隐式事务(关闭自动事务)
    • NONE 没有自动事务处理
  • 99讲 事务 - 并发事务带来的问题 - 脏读

  • 100讲 事务 - 并发事务带来的问题 - 丢失更新

  • 101讲 事务 - 并发事务带来的问题 - 不可重复读

  • 102讲 事务 - 并发事务带来的问题 - 幻读

  • 103讲 事务 - 并发事务带来的问题总结

    • 通俗解释
    • 不可重复读和脏读、幻读的区别
    • 不可重复读和脏读的区别
    • 不可重复读和幻读区别
  • 104讲 事务 - 隔离级别 - READ UNCOMMITTED

    • READ UNCOMMITTED(读取未提交数据)
  • 105讲 事务 - 隔离级别 - READ COMMITTED

    • READ COMMITTED(读取已提交数据)
  • 106讲 事务 - 隔离级别 - REPEATABLE READ

    • REPEATABLE READ(可重复读)
  • 107讲 事务 - 隔离级别 - SERIALIZABLE

    • SERIALIZABLE(可串行化)
  • 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讲 错误处理 - 手写通用错误异常处理方式,包含日志,堆栈。

    • $ZtrapTry-Catch双保险方式捕捉异常
    • 原理
    • $Ztrap方式捕捉ZTrap抛出异常
  • 133讲 调试 - BREAK 命令 - 基本使用

    • BREAK命令有三种形式
    • 无参BREAK
  • 134讲 调试 - BREAK 命令 - 逐步逐行调试

    • BREAK Extended 参数以设置常规断点
  • 135讲 调试 - BREAK 命令 - 中断运行中的程序

    • Flag参数
  • 136讲 调试 - ZBREAK 命令 - 基本使用

    • 基本语法
    • ZBREAK帮助文档
    • 无参数ZBREAK
    • BREAKZBREAK的区别
  • 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关键字 - 设置属性字段不能为null
    • MultiDimensional - 关键字定义多维属性
    • 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映射关系
    • 保存对象标识符:IDOID
    • 持久类成员
  • 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关键字 - 指定Storage
    • DdlAllowed关键字 - 指定是否可以使用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 - Swizzling

    • Swizzling - 懒加载、交错存储、重组存储
  • 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 - 介绍使用

    • 结构
    • 关键字
    • 使用XData
      • XML示例
      • JSON示例
      • YAML 示例
  • 202讲 类 - Projection映射 - 介绍使用

    • 使用类映射
  • 203讲 类 - 关系 - 简介

    • 类型
    • 定义关系
    • 关系属性如何保存
  • 204讲 类 - 关系 - 定义一对多关系

  • 205讲 类 - 关系 - 删除一对多关系

  • 206讲 类 - 关系 - 使用关键字OnDelete

  • 207讲 类 - 关系 - 定义主子关系

  • 208讲 类 - 关系 - 删除主子关系

  • 209讲 类 - 关系 - 在SQL查询中使用关系

  • 210讲 类 - 关系 - 使用关系定义多对多关系

  • 211讲 类 - 关系 - 使用外键定义多对多关系

  • 212Query - 简介与基本使用

  • 213Query - 自定义Query基本使用

  • 214Query - 通过%SQL.Statement,%ResultSet使用Query

    • 使用%SQL.Statement对象调用Query
    • 使用%ResultSet对象调用Query
  • 215Query - 通过Json数据或方法动态生成Query

  • 216Query - 通过Select Sql语句动态生成Query

  • 217Query - 通过Query生成动态Query

  • 218Query - 支持传统的Query并通过参数形式生成Query

  • 219Query - 定义通用Query,只需要实现Exceute方法

  • 220Query - 通过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讲 动态派发 - 动态属性示例

  • 236JSON - 简介

    • 动态JSON简介
    • JSON简单使用示例
      • 创建和操作动态实体
  • 237JSON - 使用JSON文本构造器

    • 使用字符串JSON构造函数创建动态实体
    • 使用JSON文本构造器
  • 238JSON - 使用动态表达式和点语法

    • 使用动态表达式和点语法
    • 使用点语法创建动态对象属性
    • 使用点语法创建动态数组元素
  • 239JSON - 使用 %Set(), %Get(), %Remove()

    • 使用 %Set(), %Get(), %Remove()
    • 使用%Set()%Get()%Remove()以编程方式指定JSON的键和值
    • 使用%Get()%Remove()检索嵌套的动态实体
    • 删除对象属性
    • 删除数组元素
  • 240JSON - 链式动态实体方法

  • 241JSON - 错误处理

  • 242JSON - 序列化与反序列化

    • 将动态实体转换JSON字符串
    • JSON字符串反序列化为动态对象
    • 在嵌套复杂动态实体和JSON字符串之间进行转换
  • 243JSON - 克隆JSON对象

  • 244JSON - 迭代JSON

    • 使用%GetNext()遍历动态实体
    • 遍历数组
    • 遍历对象
  • 245JSON - 解决JSON字符串超长问题

    • 将大型动态实体序列化为流
    • 读取和写入Global字符流
    • Json写入文件流
  • 246JSON - 动态数组中的null

  • 247JSON - 在数组中使用%Remove

  • 248JSON - 使用%Size()的数组迭代

  • 249JSON - 使用%IsDefined()测试有效值

  • 250JSON - 在动态数组中使用%Push%Pop

    • 使用%Push()%Pop()构建一个数组并销毁
  • 251JSON - 处理JSON 数据类型

    • 使用%GetTypeOf()返回值的数据类型
    • 迭代和数据类型检测
    • 区分动态数组,动态对象和oref
  • 252JSON - 用%Set()%Push()重写覆盖默认数据类型

    • %Set()%Push()重写覆盖默认数据类型
  • 253JSON - 解析JSON空值和布尔值

    • 解析JSON空值和布尔值
  • 254JSON - 解决Null、空字符串和未赋值

    • 解决Null、空字符串和未赋值
  • 255JSON - 动态实体方法概览

    • 创建、读取、更新、删除

      • %Set() 可以更改现有动态实体成员属性或元素的值,也可以创建新成员并为其赋值。
      • %Remove() 删除现有成员。
      • %Get() 检索成员的值。
    • 迭代数组

      • %GetIterator() 返回一个迭代器,其中包含指向动态实体每个成员的指针。
      • %GetNext() 返回迭代器标识的成员的键和值,并将光标移到下一个成员。
      • %Size() 返回成员数包括数组中未分配的元素。
      • %IsDefined() 测试成员是否具有指定的值。
    • 堆栈功能

      • %Push() 将新元素添加到动态数组的末尾。
      • %Pop() 删除数组的最后一个元素并返回其值。这些方法不适用于动态对象,因为对象属性不是按可预测的顺序存储的。
    • 序列化和反序列化

      • %FromJSON()JSON字符串转换为动态实体。
      • %FromJSONFile()
      • %ToJSON() 将动态实体序列化为规范JSON字符串。
    • 数据类型

      • %GetTypeOf() 返回一个字符串,该字符串指示指定成员值的数据类型。%Set()%Push()提供一个可选的第三个参数来显式地指定值的数据类型。
  • 256JSON - %JSON.Adaptor - 简介,对象与JSON互转

    • 导入导出
    • 实体类继承%JSON.Adaptor
    • 将对象导出为JSON字符串
    • JSON字符串导入到对象中
  • 257JSON - %JSON.Adaptor - 使用参数映射

    • %JSONFIELDNAME
    • %JSONINCLUDE
    • %JSONIGNOREINVALIDFIELD
    • %JSONIGNORENULL
    • %JSONNULL
    • %JSONREFERENCE
    • %JSONIGNOREINVALIDFIELD
  • 258JSON - %JSON.Adaptor - 使用XData映射块

    • 定义扩展数据映射块
  • 259JSON - %JSON.Adaptor - 格式化JSON

    • 格式化JSON
  • 260%Dictionary - 是什么怎么用

    • 类别
    • 判断类关键字是否存在
    • 查看类定义
    • 修改类定义
  • 261%Dictionary - 类成员对应哪些表

    • 类定义类说明
  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: 在JavaScript中,可以使用typeof运算符来判断数据类型。typeof通常用于判断基本数据类型,返回表示数据类型的字符串。例如,typeof 1会返回"number",typeof 'a'会返回"string",typeof true会返回"boolean",typeof undefined会返回"undefined",typeof null会返回"object",typeof {}会返回"object",typeof [1,2,3会返回"object",typeof new Fn()会返回"object",typeof new Array()会返回"object"。然而,typeof不能准确判断null的数据类型,null会被判断为"object"。此外,jQuery也提供了一系列工具方法来判断数据类型,例如jQuery.isArray()用于判断是否为数组,jQuery.isEmptyObject()用于判断是否为空对象,jQuery.isFunction()用于判断是否为函数等等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [JS判断数据类型的5种方法](https://blog.csdn.net/weixin_45571121/article/details/120518849)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [js判断数据类型(全)](https://blog.csdn.net/qq_30136729/article/details/124090314)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yaoxin521123

谢谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值