#InterSystems IRIS for Health

0 关注者 · 924 帖子

InterSystems IRIS for Health™ 是全球第一个也是唯一一个专门为医疗应用程序的快速开发而设计的数据平台,用于管理全世界最重要的数据。它包括强大的开箱即用的功能:事务处理和分析、可扩展的医疗保健数据模型、基于 FHIR 的解决方案开发、对医疗保健互操作性标准的支持等等。所有这些将使开发者能够快速实现价值并构建具有突破性的应用程序。了解更多信息

文章 姚 鑫 · 一月 22, 2025 2m read

# 第四章 C 开头的术语

#### 循环引用 (circular reference)

**对象(Objects)**

在不同类中的两个属性相互引用对方的集合。只要循环引用中的两个属性都不是必需属性,`IRIS` 完全支持循环引用。如果循环引用中的两个属性都是必需属性,你将无法保存这两个类的对象。

#### 类编译器 (class compiler)

**对象(Objects)**

类编译器用于编译`IRIS` 类。你可以在 `IDE` 中使用类编译器,或者通过 ` IRIS` 对象实用库中的编译调用来使用。

#### 类定义语言 (Class Definition Language)

**对象(Objects)**

`IRIS` 的类定义语言(`CDL`)是一种基于关键字的语言,用于定义 `IRIS` 中的类。

#### 类描述符 (class descriptor)

**对象(Objects)**

包含运行时信息(方法和属性列表)的特殊类型例程,用于使用对象。

#### 类字典 (class dictionary)

**对象(Objects)**

类字典保存所有已编译类的当前类定义。`SQL` 也使用类字典来确定有效的表定义。

#### 类层次结构 (class hierarchy)

**对象(Objects)**

类层次结构显示从每个根类到其每个子类及其子类的类链。

0
0 107
文章 Nicky Zhu · 一月 22, 2025 2m read

近期有些小伙伴需要查询某张特定的表所占用的磁盘大小,可能其他小伙伴也有类似的需求。

给大家一个例子供参考。

应当考虑到IRIS的表底层使用global存储数据,包括表数据、索引数据和流数据(如果表中有流属性的话),因此一张表的完整占用应当包含至少上述三种global的求和,如下所示:

ClassExtends%RegisteredObject

上述代码定义了一个SQL函数,可以通过SQL直接查询,效果如下:

其中,HCC为表所在的数据库,Test.Test是测试用的数据表。返回的结果统计单位是MB。

读者可以在这个demo基础上添加些自己需要的其他特性和异常处理。现在这个函数返回的是系统分配给表的占用(不一定真用完了),读者可以参考在线文档中的API说明,获得更多详细的信息,例如要获取实际占用的空间而不是已分配的空间,应该如何调用API等。

0
1 229
InterSystems 官方 Michael Lei · 一月 21, 2025

InterSystems 已更正导致在使用特定 $LIST 语法时引入无效数据库和日志记录的缺陷。 遇到此缺陷的可能性非常低,但它对操作的影响可能会很大。

受影响的产品

  • InterSystems IRIS® 数据平台:2023.3、2024.1.0、2024.1.1、2024.1.2、2024.2、2024.3 版
  • InterSystems IRIS® for Health:2023.3、2024.1.0、2024.1.1、2024.1.2、2024.2、2024.3 版
  • HealthShare® Health Connect:2023.3.0、2024.1、2024.1.1、2024.1.2、2024.2、2024.3 版
  • HealthShare® Unified Care Record and Suite:2024.2 版
  • 基于上述产品的所有产品组合

 

该问题仅影响 Unicode 安装。

使用以下语法在 global 中向列表附加新元素时,会出现此问题:

SET $LIST(<global reference>, *+1) = value.

当此调用的结果列表超出最大字符串长度时,正确的行为是返回 <MAXSTRING> 错误。此错误会出现在 InterSystems IRIS、InterSystems IRIS for Health 和 Health Connect 2023.

0
0 189
文章 姚 鑫 · 一月 18, 2025 2m read

第七十七章 设备特殊变量

^%IS 的更多功能

^%IS 还可用于执行以下任务:

  • 右边距抑制 — 可以设置终端线,以便每当选择该设备时,都会抑制右边距问题;默认值是自动假定的。
  • 自动设备选择 - 如果在调用 ^%IS 实用程序时存在变量 IOP,则实用程序会自动尝试打开该设备,而不是请求设备。如果 ^%IS 不成功,则将变量 设置为 。
  • 预配置的终端 — 使用 ,可以配置不向用户请求任何设备信息的设备。

^%IS Global 的结构

全局变量存储在 %SYS 命名空间中。它包含两个下标。第一个下标是在 Management Portal 中为设备配置的助记词名称。选择 、 > 、 以显示不同设备类型的默认助记词。第二个下标可以是 或 。

节点 0 的内容

节点 包含设备面板 值:

^%IS(mnemonic,0) = Location

节点 的内容

节点 包含其他 字段值,用插入符号 () 分隔:

0
0 171
文章 姚 鑫 · 一月 18, 2025 2m read

第七十六章 使用 ^%IS - 示例

示例

调用 CURRENT^%IS 后,将 $X$Y 设置为 和 以定位光标。

  DO CURRENT^%IS
  WRITE *27,*61,*DY+32,*DX+32 
  SET $X=DX,$Y=DY

入场点

是 中的一个内部入口点,可以由仅计划从设备进行 的例程调用。此入口点可用于确保您不选择仅输出设备,例如打印机。

%SYS> Do IN^%IS

Device: 3 
Right margin: 132= <RETURN>
[you can't read from this device] 
Device: <RETURN>  
Right margin: 80= <RETURN>
%SYS>

入口点

是 中的一个内部入口点,可以由仅计划向设备输出的例程调用。

Spooling

假脱机独立于您的操作系统执行的假脱机。 中的假脱机是一种技术,可让自动将程序的输出保存在全局中,而不是立即打印。稍后可以通过将 的内容发送到打印机来打印输出。

助记词 是默认助记词。要指定假脱机,请输入 以响应 提示符。然后,系统要求提供假脱机文件名和描述。这是 全局变量中使用的名称,而不是操作系统级别的单独文件名。

0
0 97
文章 姚 鑫 · 一月 16, 2025 3m read

第七十五章 使用 ^%IS - OPEN 参数

OPEN 参数

默认情况下,OPEN 命令使用 ^%IS 全局中定义的设备的规范。在使用 ^%IS 时,可以通过指定其他设置来覆盖这些设置。

发出 命令

运行 后,应用程序必须向 ^%IS 打开的设备发出 USE 命令。你可以使用变量 ,只要你明白每次调用 时它的值都会发生变化。然后,后续的 命令,例如 和 ,将引用该设备。

发出 命令

用户或应用程序开发人员必须关闭使用 S 实用程序打开的设备。

助记词

有几个功能可以简化它的使用。例如,如果想将 I/O 发送到自己的终端,只需在“设备”提示符处按 键即可。还可以使用内置的默认助记词或您自己定义的新助记词。

设备助记词

为各种设备提供助记符很有用,在某些情况下,为单个设备提供多个助记符也很有用。多个助记符允许您为设备指定不同的设备特征,并根据设备的使用方式改变特征。例如,通常用于数据输入的终端,因此具有终端的特性,可能连接了辅助打印机。通过分配不同的助记词来打开具有不同特征的同一设备,当您需要硬拷贝时,您可以将终端/打印机组合视为打印机。

默认助记词

全局变量在安装时使用几个默认助记词进行初始化。例如, 假脱机程序有两个默认助记词, 和 。只需键入 或 即可将输出发送到 后台处理程序。

如果您登录的是 、 或 类型的设备,并且终端是当前设备,则 将接受 、

0
0 128
文章 姚 鑫 · 一月 15, 2025 3m read

第七十四章 使用 ^%IS

^%IS 是一个通用的设备选择实用程序,用于基于字符的应用程序。可以使用内置的 ^%IS 实用程序来允许用户选择要将 操作定向到的设备。每当要选择设备时,应用程序都应该调用 实用程序。此实用程序允许用户指定要使用的设备和相应的 命令参数,打开所选设备,然后将特定于设备的信息返回给调用程序。用户输入已在 全局中定义的助记词。 依赖于 中建立的 配置默认值。

如何运作

设备提示

当您调用 实用程序时,IRIS 会提示输入设备名称。可以通过以下方式之一进行响应:

  • 输入所需的设备名称或 ID 号。
  • 输入设备的助记词。
  • Enter 选择当前设备。

响应如下:

  • 如果输入设备助记词,则 ^%IS 会在 全局变量中找到对应的设备并打开它。
  • 如果输入设备名称,则 会向该设备发出 命令。
  • 如果设备是 IRIS 设备 ,则 ^%IS 会检查设备表,查看该编号是否被重新映射到另一个实际的设备编号。然后 为设备发出 。

其他问题

如果指定的设备是终端,则实用程序会提示您使用默认的右边距。按 键选择该边距或键入其他值。如果程序稍后尝试写入超过指定的右边距,则操作系统会在达到边距时插入“” (回车和换行) 。如果选择的设备不是终端,则实用程序会询问其他类型的次要问题。

例子

0
0 100
文章 姚 鑫 · 一月 14, 2025 2m read

第七十三章 管理设备和助记词空间 - 设备的解释级别

^%ISOPEN 命令一起使用的设备标识符最多要经过三个级别的解释。因此,如果在 ^%ISDevice: 提示符处输入助记词 ,则使用的最终设备 可能会有所不同。下面介绍了这三个级别。

级别 1: 实用工具级别

如果使用 实用程序选择设备,则使用第一级。^%IS 全局中的助记词可以与设备编号相关联。然后,^%IS 实用程序向该设备编号发出 命令。

级别 2: 命令级别

在 命令中,IRIS 会检查此数字是否存在于 表的 列中。如果是这样,它会将其转换为该设备的实际设备号或名称。

注:如果想通过 的助记词访问该设备,请确保不要定义与设备 匹配但与其他设备关联的别名。

定义默认助记词

程序员可以通过在其应用程序中使用 命令来控制设备。例如,当程序员使用以下命令使用 %X364 助记词时,他们可以将光标移动到终端设备上当前行中的特定列:

由助记词的任何特定值引起的操作由 命令使用的助记词空间决定。助记词空间是具有定义设备操作和属性的入口点 (助记词) 的例程。

WRITE 命令使用设备的 或 命令中定义的助记词空间。如果 或 命令不包含助记词空间参数,则 会为设备类型使用默认助记词空间。

预定义的助记词空间

附带预定义的(默认)助记词 。这是 (ANSI) 终端的默认助记词空间。

0
0 101
文章 姚 鑫 · 一月 13, 2025 2m read

第七十二章 管理设备和助记词空间 - 定义设备

定义设备

可以在 Management PortalDevices (设备) 配置设置中定义、编辑和删除设备。您输入的信息存储在 ^%IS 全局变量中。有关此全局的更多信息,请参阅 全局的结构。

如果在 运行时进行设备更改,系统会提示是否要在不重新启动 的情况下激活更改。如果同意激活更改,则新定义将立即提供给用户。

访问设备

Windows 系统上,必须将设备编号用于作业间通信设备和常规联锁设备。对于终端和打印机,可以使用您分配的设备助记词或设备编号。

在 系统上,可以使用 UNIX 文件规范来引用文件,也可以设置设备编号来引用文件。

可以通过以下两种方式之一访问设备:

  • ^%IS 实用程序的 Device: 提示符处输入设备助记词。
  • 发出 命令并输入设备 或别名。

允许用户使用 ^%IS 实用程序选择设备

如果希望基于字符的应用程序的用户以交互方式选择设备,请从应用程序中调用 实用程序。您可以在 允许用户指定设备 中了解有关 实用程序的更多信息。

要使用 实用程序选择设备:

  1. 在 提示符处,输入设备助记词。

预定义的助记词空间

Mnemonic 记忆
0
0 104
文章 姚 鑫 · 一月 12, 2025 2m read

第七十一章 管理设备和助记词空间 - 设备 ID

可以通过数字或操作系统名称来识别设备。可以在 OPEN 命令中使用此标识符。

设备别名

可以为定义的每个 IRIS 设备定义一个或多个别名值。当用户在 OPEN 命令中指定别名时,IRIS 会将其转换为设备 。

提供的默认设备 适用于大多数用户。但是,某些用户可能希望覆盖这些默认值。可以通过在 Management Portal 中提供别名作为设备配置设置的一部分来实现此目的。

默认设备 和助记词

当安装 时,这些是每种设备类型的默认设备编号和助记符。

默认设备编号和助记词

Device 装置 Device ID 设备 ID Mnemonic 记忆 Notes 笔记
Principal 0 TERM 无法更改此设备的设备 ID
Spooler 后台处理程序 2 S POOL

但是, 还可以识别可用于定义设备的其他设备编号。下表列出了已识别的默认设备编号。

IRIS 默认设备编号

Device Number 设备编号 Type 类型 Definition 定义
0 主设备 对于交互式流程,这是用户登录的终端。对于 进程,这是 设备(默认情况下)或创建作业床进程的
0
0 113
文章 姚 鑫 · 一月 9, 2025 3m read

第七十章 管理设备和助记词空间

设备管理实用程序

下表总结了用于管理设备的实用程序。

IRIS 设备实用程序

Action 行动 Utility 效用 Description 描述
Define devices 定义设备 管理门户中的设备配置 允许定义用户可以使用 ^%IS 实用程序访问的设备。设备存储在 ^%IS 全局变量中。可以编辑和删除这些设备定义。在 Devices (设备) 子部分中,定义设备,包括助记词和别名。提供默认设备。在 子部分中,定义设备子类型。提供了默认子类型。
定义默认助记词 options in the Management Portal管理门户中的 IO 配置选项 可以使用 命令控制设备。在此面板上,输入 在执行 WRITE /mnemonic 命令时使用的默认助记词的名称,该命令前面没有带有助记词空间规范参数的 或 命令。
Allow users to select a device interactively in character-based applications.允许用户在基于字符的应用程序中以交互方式选择设备。 ^%IS routine 请参阅允许用户指定设备 ()。
0
0 113
文章 姚 鑫 · 一月 9, 2025 2m read

第六十九章 打印机 - 使用助记词空间控制设备

助记词是执行设备控制操作(如光标移动和设备属性)的 IRIS 例程。每个操作都与一个标签相关联。这些标签是 WRITE /mnemonic 命令中使用的助记词。有关 WRITE /mnemonic 语法的更多信息,请参阅本文档其他页面中每种设备类型的 命令说明。

预定义的助记词空间

提供下表中描述的预定义助记词空间。

预定义的助记词空间

Routine Name 例程名称 Device Type Default 设备类型 默认 Description 描述
^%X364 终端、顺序文件、其他设备 X3.64 (ANSI) 端子的助记词空间。有关信息,请参阅 X3.64 的助记词空间。
DTM PC 控制台的助记词空间。有关信息,请参阅 的助记词空间。

设置默认助记词

可以在 中更改以下设备类型的默认助记词空间。依次选择 System Administration、Configuration (配置)、Device Settings (设备设置)、 IO Settings (IO 设置)。这将显示以下内容的助记词:

  • Terminals 终端

  • Sequential files 顺序文件

  • Other

0
0 90
文章 姚 鑫 · 一月 7, 2025 3m read

第六十八章 打印机 - 在 UNIX® 上指定打印机

要在 UNIX 设备名称为 /dev/tty06 的终端上打开 I/O 设备,请输入以下命令

   OPEN "/dev/tty06"

在 系统上,打印机由 命令上的名称标识,并在 tty 设备上作为“字符特殊”文件处理。因此,支持的 和 命令参数与终端 相同, 而不是顺序文件 的参数。

在 上, 支持大多数终端 I/O 关键字参数,如终端 中所述。

将输出定向到打印机

可以使用 实用程序将输出定向到打印机。可以使用命令 调用 %IS 实用程序。(也可以使用 来指定选择的是仅输出设备。无论哪种情况, 都会返回 提示符。要指定打印机,请使用默认助记符 ““ 或其他已配置打印机的助记符。然后,% 实用程序会建议 参数;对于打印机,默认值为 “” (只写)。可以通过按 键来接受参数 ,如以下示例所示:

%SYS>DO ^%IS
Device: |PRN|
Parameters? "W" => <RETURN>
%SYS>

这将打开指定的打印机作为当前进程的输出设备。

%IS 实用程序设置各种变量。以下是 系统上的打印机默认值。

%IS 设置的变量

Variable 变量 Value 价值 Description 描述
IO ` PRN
IOF # 换页字符。WRITE # 发出表单 feed
0
0 153
文章 姚 鑫 · 一月 5, 2025 2m read

第六十六章 打印机

打印机

本页讨论了如何在 IRIS 数据平台中配置和使用打印设备。打印机是仅物理输出设备。打印机可以是字符打印机,也可以是非字符设备,例如传真或绘图仪。

在大多数情况下,输出不会直接发送到打印机。通常,要打印的输出首先发送到逻辑假脱机设备(^SPOOL 全局)。然后,可以将 ^SPOOL 全局的内容发送到物理打印机。有关假脱机的更多详细信息,请参阅 假脱机设备。

打印机概述

请注意,Windows 和 处理打印机 I/O 的方式不同。

  • Windows 系统将打印机作为顺序 I/O 设备处理,因此遵循与顺序文件 I/O 相同的语法。但是,通过串行通信端口连接的打印机将作为终端 设备处理。
  • 系统始终将打印机作为终端 设备进行处理。 将其视为 设备上的 “字符特殊” 文件,因此遵循与终端 相同的语法。

在 系统上,您可以使用 方法返回系统上当前打印机的计数。您可以使用 方法返回系统上当前打印机的列表。

指定打印机

可以为打印机分配一个介于 和 之间(包括 和 )的设备编号。此设备编号范围也用于终端和平面文件。

在 系统上,可以使用打印机的设备编号或分配的设备助记词来引用打印机。 默认打印机助记词为 .

有两种方法可以指定打印机:

  • 调用 实用程序,它允许您使用 全局中定义的助记符来指定设备。此实用程序将打开设备并设置其参数。
0
0 138
InterSystems 官方 Michael Lei · 一月 5, 2025

2024.3 版  InterSystems IRIS® 数据平台、InterSystems IRIS® for Health 和 HealthShare® Health Connect 现已正式发布 (GA)。

版本亮点

在此版本中,您可以期待一系列激动人心的更新,包括:

  1. 数据库和 WIJ 文件的扩展速度大大提高
  2. 能够通过 Visual Trace 重新发送消息
  3. 增强的规则管理器功能
  4. 向量搜索增强功能
  5. 等等。

请通过开发者社区分享您的反馈,与我们共同打造更好的产品。

文档

请访问以下链接了解所有亮点功能的详细信息:

此外,请查看此版本的升级信息

抢先体验计划 (EAP)

目前提供多个 EAP。 请查看此页面并注册您感兴趣的计划。

如何获取软件?

像往常一样,持续交付 (CD) 版本包含适用于所有受支持平台的经典安装包,以及 Docker 容器格式的容器镜像。

0
0 334
文章 姚 鑫 · 一月 4, 2025 2m read

第六十五章 假脱机设备 - 列出假脱机文档

列出假脱机文档

%SPOOL 实用程序菜单 List documents 的选项 2 显示当前为运行 的目录假脱机的文档列表。如果没有 值,则文档尚未解散(打印)。

每个假脱机文档的描述显示在有关该文档的其余信息之后的一个或多个单独行上。

在以下示例中,用户选择了选项 。显示屏将显示存储在后台处理程序中的两个文档。第一份记录在 月 30 日下午 存储,并于当天下午 打印。第二份于 月 日上午 存储,并于当天上午 打印。

Spool function: 2   List documents

# Name      Lines   Spool start     Despool start-end 
1 SPOOLFILE  1     30 Aug  2:23 pm  30 Aug  2:25 pm- 2:25 pm
  This is my test spool file

3 LONGFILE   1     04 Mar 11:39 am  04 Mar 11:42 am- 11:42 am 
  This is a very long description line that shows you what happens when you
have a long description. It shows you how the text wraps from line to line.
This particular description was made intentionally long, so as to wrap at least
twice.
0
0 73
文章 姚 鑫 · 一月 4, 2025 3m read

第六十四章 假脱机设备 - 使用 %SPOOL 打印

使用 %SPOOL 打印

%SPOOL 实用程序菜单的选项 1 Print(打印)允许您在任何设备上打印 ^SPOOL 全局中的一个或多个文档,继续打印中断的文档,以及将单张纸张手动送入信纸质量打印机。通过将输出发送到后台处理程序,可以在输出设备打印文档时释放终端用于其他用途。

可以在完全创建后台打印文档之前或之后开始打印。如果打印机赶上新输出,则打印过程将暂停 秒钟,然后打印在此期间累积的所有输出。打印过程知道您何时关闭了后台打印文档,并在文档完成时完成。

当 打印文档时,它会跟踪已打印的页面。它还会创建页面索引,以便可以按页码对文档进行排序,并从您选择的任何页面的顶部开始打印。

如果停止打印(例如,在终端输出期间按 Ctrl-c,或者打印机损坏),则可以稍后在最后一个部分打印的页面的顶部或文档中任何其他页面的顶部继续打印。请注意,IRIS 不会将文档开头的换页数计为页数中的页数。

使用术语 来表示打印。仅当文档已打印(depooled)时, 列和描述行中才会有值。

使用 Print 函数

  1. 在 “Spool function:” 提示符下,输入 1
  2. 在“”提示符下,输入 要显示帮助文本,请输入 列出当前命名空间中的所有现有 文档,或输入要打印的 文档的名称。
0
0 98
InterSystems 官方 Michael Lei · 一月 3, 2025

InterSystems IRIS® 数据平台、InterSystems IRIS® for Health 和 HealthShare® Health Connect 2025.1  的首个开发者预览版已发布到 WRC 开发者预览网站。容器可在我们的容器注册表中找到,并已添加 latest-preview 标签。

这些开发者预览版包含用于迁移到 IBM Open XL C/C++ for AIX 17.x 编译器的功能,从而在旧版编译器接近支持终止时确保与未来的 AIX 版本兼容。 此迁移侧重于 aixopenssl30 目标,支持 AIX 7.2 和 7.3 上的 SSL3。

可以在以下链接中找到初始文档:

可用性和软件包信息

此版本提供适用于所有受支持平台的经典安装包。有关完整列表,请参阅“支持的平台”文档

安装包和预览版密钥可从 WRC 的预览版下载网站或通过评估服务网站(勾选“Show Preview Software”(显示预览软件)框)获取。

0
0 190
文章 姚 鑫 · 一月 1, 2025 2m read

第六十二章 假脱机设备 - 查看 ^SPOOL 全局

查看 ^SPOOL 全局

与任何下标的全局变量一样,您可以通过发出 WRITE 命令来显示 spool 文件中的行,如下所示:

   WRITE "1st spool file node: ",^SPOOL(1,1),!

但是,要查看和编辑假脱机文件本身,请转到管理门户并选择 和 Globals。选择您当前的命名空间,找到 SPOOL 全局变量,然后单击 。这将显示类似于以下示例的假脱机文件数据。

在下面的假脱机文件中,() 终止字符结束假脱机文件中的每个节点行。这些终止字符是假脱机文件的一部分,作为 连接到文本字符串( 和 )。

^SPOOL(1,1)=<<"First line of text"_$C(13,10)>>
^SPOOL(1,2)=<<"Second line of text"_$C(13,10)>>
^SPOOL(1,2147483647)={59605,43605{3{

在下面的假脱机文件中,没有行终止字符。两个 命令写入一个 行,该行由关闭 spool 文件终止。

^SPOOL(1,1)=First half of line Second half of line
^SPOOL(1,2147483647)={59605,43725{2{
0
0 125
文章 姚 鑫 · 十二月 31, 2024 2m read

第六十一章 假脱机设备 - 假脱机和特殊变量

写入 ^SPOOL 时,IRIS 会不断更新 $X 并特殊变量。 表示写入当前索引行的字符数, 包含当前 期间写入的行数。请注意, 的值不一定与 索引相同。例如:

   /* Writing to the ^SPOOL global */
   OPEN 2:(2:3)
   USE 2
     WRITE "Hello " SET x1=$X,y1=$Y,z1=$ZA
     WRITE "world",! SET x2=$X,y2=$Y,z2=$ZA
     WRITE "Good to see you",! SET x3=$X,y3=$Y,z3=$ZA
   CLOSE 2

   /* Displaying the ^SPOOL global */
   WRITE ^SPOOL(2,3),^SPOOL(2,4)
   WRITE !,"$X=",x1," ",x2," ",x3
   WRITE !,"$Y=",y1," ",y2," ",y3
   WRITE !,"$ZA=",z1," ",z2," ",z3

在此示例中,第一个 集 (当前列号),第二个和第三个 WRITE 都设置为 (因为行返回)。第一个 设置为 ,第二个 (因为行返回),第三个

0
0 148
文章 姚 鑫 · 十二月 29, 2024 2m read

第六十章 假脱机设备 - WRITE 命令

WRITE 命令

要将一行写入 ^SPOOL 全局变量,请发出 WRITE 命令,以行终止符字符结尾。例如

   /* Writing to the ^SPOOL global */
   OPEN 2 
   USE 2 
     WRITE "First line of text",!
     WRITE "Second line of text",!
   CLOSE 2

   /* Displaying the ^SPOOL global */
   WRITE ^SPOOL(1,1),^SPOOL(1,2)

每行都以行终止符(感叹号)结尾,并存储在单独的全局节点中。

但是,在生成单个打印行时,可能需要使用多个 命令;如果 WRITE 不包含行终止符,则下一个 WRITE 命令将附加到同一打印行。两者都写入同一个全局节点。此行保存在缓冲区中,在发出行终止字符或关闭后台处理程序设备之前,不会写入后台处理程序全局。

0
0 165
文章 姚 鑫 · 十二月 27, 2024 2m read

第五十九章 假脱机设备

介绍

IRIS数据平台使能够将打印输出直接发送到您的打印机或屏幕,或将其保留在后台打印中以供以后打印。IRIS 假脱机独立于您的操作系统执行的假脱机。

IRIS 中的假脱机是一种技术,可让自动将程序的输出保存在 下标全局中,而不是立即打印。可以通过将 ^SPOOL 全局的内容发送到打印机来稍后打印输出。本页介绍使用此假脱机工具的两种方法:使用 命令()或使用 和 实用程序。

打开和使用假脱机设备

要将输出发送到当前命名空间中的 全局变量,请打开 并将其指定为输出设备。

假脱机程序是 IRIS 提供的预定义设备。它在设备表中被分配了设备编号 。此设备号可用于在 、 和 命令中标识后台处理程序设备。

您可以通过 访问后台处理程序设备信息。依次选择 、 (配置)、 (设备设置)、 (设备)。在这里,将找到设备 和名为 的设备。默认情况下,它们都映射到同一物理设备(设备 ),并且具有相同的 值。

当将 假脱机程序设置为当前设备时, 会将发送到设备 2 的任何输出存储在当前命名空间的全局 中。 中的每一行都位于单独的全局节点中。

有两种方法可以打开 后台处理程序并将其设置为当前输出设备:

  • 发出 OPENUS 命令
  • 调用 实用程序

用于假脱机设备的 和 命令

可以通过向该设备发出 和

0
0 158
文章 姚 鑫 · 十二月 25, 2024 2m read

第五十八章 File 输入 输出 - WRITE 命令

WRITE 命令

在定位的 READWRITE 之后,后续的 READ 或 操作将按顺序进行,直到下一个带有 参数的 命令。

命令将数据(一次一条记录)写入作为当前设备的顺序文件。

语法

  • x 变量 x 中的数据将作为一条记录写入顺序文件中。

CLOSE 命令

命令放弃对顺序文件的所有权。

如果指定的文件未打开或不存在,则 将忽略 并返回而不发出错误。

语法

  • file 文件 任何有效的文件规范,用引号括起来。指定的文件必须已打开。在 路径名中,可以使用波形符 (~) 扩展来指示当前用户的主目录。例如: 或 。
  • 关闭并删除具有参数中指定的名称的文件。
  • () 使用参数中指定的名称关闭文件,并将其重命名为 。

命令关键字

下表描述了仅使用 命令控制顺序文件的关键字。

顺序文件的 命令关键字

,除非文件在打开时标记为删除。

对应于 参数代码,该代码指定应删除该文件。对于非零值 , 或 将启用参数代码,对于零值 , 将禁用参数代码。

请勿重命名文件。

对应于 参数 和文件名 参数。 参数代码指定应重命名文件,文件名 参数提供文件的新名称。

0
0 160
文章 Louis Lu · 一月 26, 2022 2m read

许多使用InterSystems IRIS的用户在调试代码的时候习惯使用命令行的方式,比如运行一个函数查看输出或者查看代码运行过程中保存在global中的数据等等。

对于将 InterSystems IRIS 安装在 Windows 操作系统的用户,只需要点击右下角图标选择Terminal 就可以很方便的使用。

但是对于将其安装到 Linux 或者Docker 容器中的用户,要使用命令行却不那么方便,下面我将会介绍在我们 Openexchange 中的一个应用 -- Web Terminal。

也就是说可以在网页中直接执行Terminal中的命令。

2016-09-18_212035

或者查看SQL执行结果:

可以在其中输入 /help ,获取更多帮助信息

安装

1. 点击进入项目下载页面,选择下载最新的版本。

2. 在任意的命名空间下导入下载的xml文件。

注意在这里选择导入文件的同时也要勾选上 “编译导入的项”

3. 之后会出现下面提示导入成功的提示

如果出现类似于下面的错误提示:

请将下载的 WebTerminal-v4.9.3.xml 文件编辑做下面修改

1 . 第1611行:修改为 

set requiredRole = "%DB_IRISSYS"

2. 第1730行:修改为

set dbPrefix = "IRIS"

重新导入就可以了。

3
0 437
文章 姚 鑫 · 十二月 24, 2024 2m read

第五十七章 File 输入 输出 - READ 命令

在定位的 READ 或 之后,后续的 READ 或 操作将按顺序进行,直到下一个带有 参数的 命令。

命令从当前设备读取数据,一次读取一条记录。读取超过文件末尾会导致错误。

语法

  • x 该变量将保存从文件中读取的记录。
  • n 可选 – 对于可变长度读取,为要读取的字符数,指定为整数。对于固定长度的读取,此参数将被忽略。
  • timeout 超时 可选 – 在超时之前等待读取操作完成的秒数。整数值或解析为整数的变量。

参数虽然是可选的,但强烈建议使用,因为如果指定了 ,则 的成功或失败由 特殊变量的值指示。如果读取尝试在超时到期之前成功,则 设置为 ;如果超时到期,则 设置为 。

以下示例显示了从 顺序文件中读取固定长度记录的 操作。它创建一个顺序文件,将数据写入该文件,然后关闭该文件。然后,它会打开此文件以进行 4 个字符的固定长度读取 ()。它将 参数设置为第一条记录(记录 );每个读取操作都会推进此位置。 循环将每个四字符的记录读取到下标变量中。然后, 命令显示所有这些下标局部变量及其值。

示例

以下示例读取固定长度文件的第三、第四和第五条记录:

   SET myfile="FIXED.LEN"
   OPEN myfile:("FR":100)
   USE myfile:2 
   READ var1(3),var1(4),var1(5)
0
0 203
文章 姚 鑫 · 十二月 23, 2024 2m read

第五十六章 File 输入 输出 - USE 命令

US 命令

USE 命令使打开的顺序文件成为当前设备。可以打开多个顺序文件,但一次只能使用一个顺序文件。

语法

USE file:position
  • file 文件

任何有效的文件规范,用引号括起来。指定的文件必须已打开。在 UNIX 路径名中,可以使用波形符 () 扩展来指示当前用户的主目录。例如: 或 。

  • position 位置

可选 — 文件中下一个 或 WRITE 的位置。position 值是一个数字表达式,其含义取决于文件的记录格式。对于固定长度的记录 是相对于零的绝对记录号,其中每条记录都包含在前面的 命令中指定的字符数。对于流或可变长度记录, 是相对于零的绝对字节位置。默认设置是从文件开头开始按顺序读取或写入记录。

可以使用 函数设置文件位置,该位置由字符数相对于顺序文件的开头、当前位置或结尾的偏移量指定。 特殊变量包含从顺序文件开头开始的当前字符计数位置。

命令关键字

除了上面列出的与 共享的命令关键字外, 命令还有自己的一组关键字:

顺序文件的 命令关键字

当前文件位置。(文件指针位置在首次打开文件时位于文件的开头,除非文件是在追加模式下打开的。在这种情况下,文件指针位置位于文件的末尾。

对应于 参数,该参数设置文件中下一个 或

0
0 136
文章 姚 鑫 · 十二月 22, 2024 2m read

第五十五章 File 输入 输出 - 与非 InterSystems IRIS 软件的交互

与非 InterSystems IRIS 软件的交互

Windows 系统上,在 IRIS 中打开顺序文件以进行 “WL” 写入访问通常会阻止非 应用程序打开顺序文件进行写入访问。同样,非 应用程序打开顺序文件进行写入访问通常会阻止 进程并发 写入访问。

但是,某些非 应用程序,包括记事本和写字板应用程序,会打开一个文件,在共享模式下复制文件,然后立即关闭它。因此, 进程仍然可以以 “WL” 模式打开文件。当这些非 应用程序之一尝试将其副本中的更改保存到原始文件,或尝试重新打开原始文件时,将发生错误。更严重的情况可能发生如下:如果这些非 应用程序之一打开了一个文件,然后 打开、修改和关闭文件,然后非 `` 应用程序保存对文件的更改,两个进程所做的更改都被保存,文件数据的完整性可能会受到损害。

在 系统上,在 中打开一个顺序文件以进行 “WL” 写访问通常不会影响非 应用程序的行为。您必须使用锁来可靠地限制来自非 应用程序的写入访问。

示例

以下示例打开文件 的 文件。因为它没有指定 参数,所以默认情况下,它以读取访问权限和 模式打开文件:

  OPEN "LUDWIG.B"
0
0 106
文章 姚 鑫 · 十二月 20, 2024 2m read

第五十四章 File 输入 输出 - OPEN 参数关键字

OPEN 参数关键字

下表描述了顺序文件的 OPEN 命令参数关键字:

顺序文件的 OPEN关键字参数

/PARAMS=str /PAR=str

No defaul

对应于 parameters 位置参数。(它提供了一种以与位置无关的方式指定参数字母代码字符串的方法)。

/RECORDSIZE=int /REC=int

无默认值

对应于 reclen 位置参数,该参数为固定长度记录建立记录大小。(目前仅针对 操作实现。

/TERMINATOR=str /TER=str

无默认值

对应于 terminators 位置参数,该参数建立用户定义的终止符。 是一串用户定义的记录终止符,仅适用于 Stream 模式。它们允许覆盖默认终止符:回车符、换行符和换页符。用户定义的终止符仅适用于输入,它们不会影响数据写入文件的方式(终止符作为特殊字符写入文件)。如果有多个用户定义的终止符,则会将其视为终止符列表,而不是用作单个终止符的多字符序列。

OPEN 模式锁定

当两个进程尝试打开同一个顺序文件时,第二个 会根据第一个 使用的模式成功或失败。下表显示了使用独占 () 和非独占读取和写入模式的两个打开之间的交互。请注意,这些交互的解释取决于平台。为 操作系统和 操作系统提供了表。

在下表中,横轴表示第一个 的打开模式,纵轴表示第二个

0
0 168
文章 姚 鑫 · 十二月 19, 2024 4m read

第五十三章 File 输入 输出 - OPEN模式参数

A /APPEND /APP

Append:WRITE 操作将数据附加到现有文件的末尾。默认设置是覆盖现有数据,而不是 append

S /STREAM

流格式,回车符、换行符或换页符作为默认终止符。S、V、F 和 U 模式是互斥的。 是默认格式。

V /VARIABLE

请勿尝试在可变长度顺序文件末尾以外的任何位置插入记录;WRITE 将使文件中的所有数据从 WRITE 之后的点开始无法访问。 模式是互斥的。流记录 () 格式是默认格式。

使用转换表写入的可变长度记录(例如使用 转换的 数据)可能会导致存储的记录具有与输入数据不同的字符串长度。IRIS 在读取此记录时使用原始输入字符串长度。

F /FIXED /FIX

:每条记录都是 参数中指定的长度。例如:OPEN “myfile”:(“RF”:4) USE “myfile”:0 READ x:5此示例将前 个字符的记录读入变量 。这仅适用于 D 操作(不适用于 操作)。 模式是互斥的。

U /UNDEFINED

未定义的长度:指定文件记录具有未定义的长度,因此 操作必须指定要读取的字符数。最大记录长度在 参数中指定。输出时无翻译。默认值为最大字符串长度 模式是互斥的。

0
0 126
文章 姚 鑫 · 十二月 18, 2024 3m read

第五十二章 File 输入 输出 - OPEN模式参数

OPEN 模式参数

可以通过以下两种方式之一指定 OPEN 模式参数

  • 用引号字符括起来的字母代码字符串,如 “VRWN”。每个字母都指定一个参数。字母代码可以按任何顺序指定;因为 IRIS 按照从左到右的顺序执行它们,所以在某些情况下,字母代码之间的交互可能会决定首选顺序。
  • 一系列 /keyword 参数,未加引号。这些参数用冒号分隔。关键字参数可以按任意顺序指定;因为 IRIS 以从左到右的顺序执行它们,所以在某些情况下,参数之间的交互可能会决定首选顺序。

指定字母代码参数和关键字参数的组合时,请先指定字母代码字符串,然后指定关键字参数,用冒号分隔。以下示例指定三个字母代码参数,后跟两个关键字参数,后跟 reclen 和 timeout 参数。

  OPEN "mytest":("WNS":/OBUFSIZE=65536:/GZIP=0:32767):10

N /NEW

新建文件。如果指定的文件不存在,则系统创建该文件。如果指定的文件已作为 文件存在,则系统会删除旧文件并将其替换为同名的新文件(权限允许)。请注意,应使用文件锁定来防止使用此参数的并发进程覆盖同一文件。

如果未指定 “N” 模式(或 模式),并且在 OPEN 中指定的文件不存在,则 和 默认为不创建新文件。此行为可使用 的 方法进行配置。 类。

0
0 131