当前位置:首页 > 编程笔记 > 正文
已解决

第七章 ObjectScript 一般系统限制

来自网友在路上 160860提问 提问时间:2023-10-28 09:54:59阅读次数: 60

最佳答案 问答题库608位专家为你答疑解惑

文章目录

  • 第七章 ObjectScript 一般系统限制
  • 字符串长度限制
  • 下标限制
  • `Global`的最大长度

第七章 ObjectScript 一般系统限制

字符串长度限制

字符串的长度有限制:3,641,144 个字符。

重要的是要认识到字符串不仅仅是从输入/输出设备读取的结果。它们可以显示在其他上下文中,例如 SQL 查询返回的结果集中的行中的数据、通过构建具有大量项目的 $LIST、作为 XSLT 转换的输出以及许多其他方式。

下标限制

局部变量、进程私有变量、Global和锁名称都可以带下标。以下限制适用:

  • 任何下标都有最大长度。超过最大下标长度会导致 <SUBSCRIPT> 错误:

    • 对于多维数组,下标的最大长度为 32767 个编码字节。
    • 对于Global数组,下标的最大长度为 511 个编码字节。

    请注意,在每种情况下,相应的字符数取决于下标中的字符和当前区域设置。

    此外,允许的最长整数为 309 位;超过此限制会导致 <MAXNUMBER> 错误。因此,超过 309 个字符的数字下标必须指定为字符串。

  • 局部变量的最大下标级别数为 255global或进程私有global的最大下标级别数为 253。超过最大下标级别数将导致<SYNTAX> 错误。

Global的最大长度

Global引用(即对特定Global节点或子树的引用)的总长度限制为 511 个编码字符(可能少于 511 个键入字符)。

要保守地确定给定Global引用的大小,请使用以下准则:

  1. 对于全局名称:每个字符加 1

  2. 对于纯数字下标:为每个数字、符号或小数点加 1

  3. 对于包含非数字字符的下标:为每个字符添加 3

    如果下标不是纯数字,则下标的实际长度会根据用于对字符串进行编码的字符集而有所不同。一个多字节字符最多可以占用 3 个字节。

    请注意,一个 ASCII 字符可以占用 12 个字节。如果排序规则进行大小写折叠,则 ASCII 字符可以占用 1 个字节作为字符,1 个字节作为消歧字节。如果排序规则不执行大小写折叠,则 ASCII 字符占用 1 个字节。

  4. 对于每个下标,加 1

如果这些数字的总和大于 511,则引用可能太长。

由于确定限制的方式,如果必须具有长下标或Global名称,则避免大量下标级别会很有帮助。相反,如果使用多个下标级别,请避免使用长Global名称和长下标。由于可能无法控制正在使用的字符集,因此保持Global名称和下标较短非常有用。

当对特定引用存在疑问时,创建与最长预期Global引用长度相等(甚至更长)的Global引用的测试版本会很有用。这些测试的数据为在构建应用程序之前对命名约定进行可能的修订提供了指导。

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"第七章 ObjectScript 一般系统限制":http://eshow365.cn/6-26699-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!