文章
· 七月 14, 2022 阅读大约需 13 分钟
InterSystems SQL 的使用 - 第三部分 - 表

创建表

可以通过以下方式定义表:

  1. 通过DDL定义表
    • 使用任意数据库管理工具执行DDL(使用ODBC,JDBC连接)

    MyApp.Person表可以使用DDL CREATE TABLE语句来定义,指定SQL schema.table名称。成功执行这个SQL语句会生成一个相应的持久化类,包名MyApp,类名Person。当使用DDL命令定义一个表时,你不需要指定USEEXTENTSET或创建一个位图范围索引。InterSystems SQL会自动应用这些设置,并将它们包含在预测的持久化类中。默认情况下,CREATE TABLE在相应的类定义中指定了Final类的关键字,表示它不能有子类。

0 0
0 215
InterSystems 开发者社区汇聚了 17,817 位出色的开发者
InterSystems IRIS 程序员可以在这里学习、分享、了解最新动态、成长,以及收获快乐!
文章
· 七月 14, 2022 阅读大约需 6 分钟
InterSystems SQL 的使用 - 第二部分 - 基础介绍

本文概述了InterSystems SQL的特点,特别是那些没有被SQL标准所涵盖或与InterSystems IRIS 数据平台的统一数据架构有关的特点。假定你已有SQL的知识,本文不是SQL概念或语法的介绍。

在InterSystems SQL中,数据是在表内呈现的。每个表都被定义为包含若干列。一个表可以包含零个或多个数据值的行。以下术语大致上是等同的。

0 0
0 272


InterSystems SQL为存储在IRIS数据库中的数据提供不折不扣的、标准的关系型访问。

InterSystems SQL具有以下优点。

高性能和可扩展性 - InterSystems SQL的性能和可扩展性优于其他关系型数据库产品。

与IRIS对象技术的集成 - InterSystems SQL与IRIS对象技术紧密集成。你可以混合使用关系型和对象型的数据访问,而不牺牲任何一种方法的性能。

低维护 - 与其他关系型数据库不同,IRIS应用程序不需要在部署的应用程序中重建索引和压缩表。

支持标准SQL查询 - InterSystems SQL支持SQL-92标准语法和命令。

0 0
0 178

多院区信息化建设离不开医院的管理模式,这是在建设信息系统前我们必须要搞清楚的事。比如医院财务是不是独立、分院之间住院患者流转是转科还是转院、检验检查是不是可以跨院区预约,是否有统一的职能部门管理业务流程等等。类似这样一些问题在建设前要认真梳理,做好多院区信息建设的顶层布局。

0 0
0 150

2022年7月1日,由国家卫生健康委医院管理研究所指导、《中国数字医学》杂志社有限公司主办、《中国数字医学》杂志社陕西通联站协办、东华医为科技有限公司与InterSystems中国支持的“医院数字化转型研讨会”在西安召开。以下为中南大学湘雅医院网络信息中心主任冯嵩在此次论坛上的分享。

0 0
0 142
文章
· 七月 13, 2022 阅读大约需 3 分钟
第四章 使用嵌入式 Python(一)

第四章 使用嵌入式 Python (一)

嵌入式 Python 允许使用 Python 作为编程 IRIS 应用程序的本机选项。

预备知识

使用嵌入式 Python 所需的 Python 版本取决于运行的平台。

在 Microsoft Windows 上,IRIS 安装工具包安装正确版本的 Python(当前为 3.9.5),仅用于嵌入式 Python。如果在开发机器上并希望将 Python 用于一般用途,建议从 https://www.python.org/downloads/ 下载并安装相同的版本。

0 0
0 124
文章
· 七月 12, 2022 阅读大约需 5 分钟
第三章 嵌入式Python概述(三)

第三章 嵌入式Python概述(三)

使用 SQL

IRIS 中的类被投影到 SQL,除了使用类方法或直接全局访问之外,还允许使用查询访问数据。 iris 模块为提供了两种从 Python 运行 SQL 语句的不同方式。

以下示例使用 iris.sql.exec() 运行 SQL SELECT 语句以查找类名称以“%Net.LDAP”开头的所有类定义,返回一个包含每个名称和超类的结果集每个班级。在这里,系统类 %Dictionary.ClassDefinitionSQL 投影为同名表。

0 1
0 70
文章
· 二月 5, 2021 阅读大约需 5 分钟
精华文章置顶--使用VSCode 进行IRIS 开发

VSCode 是目前很流行的一款免费开发工具,IRIS也支持使用其进行连接和开发,相比Studio 只能在windows 环境使用,Vscode 可以跨平台使用。

我们传统的工具Studio 是连接代码服务器的形式,不能便捷的使用目前流行的有本地代码的版本控制工具(如git),但VSCode可以存在本地代码,并且能方便的使用各类存在本地代码的版本控制工具。

以下的内容会帮助大家来配置使用VSCode连接IRIS 进行开发。

2 4
3 701
文章
· 七月 12, 2022 阅读大约需 9 分钟
Globals - 存储数据的魔剑-树:第二部分

开始 - 请拉到页面底部查看该系列文章第一部分 .

3. 使用globals时结构的变体

一个结构,比如说一个有序排列的“树”,有各种特殊的情况。让我们来看看那些对使用globals有实际价值的情况。

3.1 特殊情况1. 一个没有分支的节点

0 0
0 108
文章
· 七月 11, 2022 阅读大约需 5 分钟
DeepSee 的使用 - 第一部分 - 基础介绍

InterSystems DeepSee的目的是使你能够将BI嵌入到你的应用程序中,这样你的用户就可以对他们的数据提出和回答复杂的问题。你的应用程序可以包括仪表盘,它包含图形部件。这些部件用来显示数据,由透视表和KPIs(关键绩效指标)驱动。对于一个透视表,用户可以显示一个列表,用其显示源值。

透视表、KPIs和列表是查询,在运行时执行。

数据透视表可以对运行时的输入作出反应,如用户的过滤器选择。在内部,它使用一个MDX(MultiDimensional eXpressions)查询,与DeepSee cube进行通信。一个cube由一个事实表和其索引组成。一个事实表由一组事实(行)组成,每个事实对应于一个基本记录。例如,这些事实可以代表病人或部门。DeepSee还生成了一组维度表(level tables)。所有的表都是动态维护的,根据你的配置和实现,DeepSee检测你的事务表的变化,并传播到事实表。当用户在分析器中创建透视表时,DeepSee会自动生成一个MDX查询。

0 0
0 216
文章
· 七月 11, 2022 阅读大约需 4 分钟
第二章 嵌入式Python概述(二)

第二章 嵌入式Python概述(二)

从 Python 调用 IRIS API

如果使用的是嵌入式 Python 并且需要与 IRIS 交互,可以使用 Python shell 中的 iris 模块,或者使用 Python 编写的 IRIS 类中的方法。要遵循本节中的示例,可以使用 ObjectScript 命令 do ##class(%SYS.Python).Shell() 从终端会话启动 Python shell

当启动终端会话时,将被放置在 IRISUSER 命名空间中,将看到提示 USER>。但是,如果从 GitHub 加载了示例类,则需要在 SAMPLES 命名空间中才能访问它们。

0 0
0 54
文章
· 七月 10, 2022 阅读大约需 5 分钟
第一章 嵌入式Python概述(一)

第一章 嵌入式Python概述(一)

嵌入式 Python 允许将 Python 与 IRIS 数据平台的本地编程语言 ObjectScript 一起使用。当使用嵌入式 PythonIRIS 类中编写方法时,Python 源代码与编译后的 ObjectScript 代码一起编译为在服务器上运行的目标代码。与使用网关或 PythonNative SDK 相比,这允许更紧密的集成。还可以导入 Python 包,无论它们是自定义的还是公开的,并在ObjectScript 代码中使用它们。 Python 对象是 ObjectScript 中的一等公民,反之亦然。

0 0
0 171
文章
· 七月 10, 2022 阅读大约需 7 分钟
第二十三章 使用 %Status 值

第二十三章 使用 %Status 值

许多类使用 %Status 数据类型类来表示状态信息,并且它们的方法返回表示成功或错误的 %Status 值(状态)。如果状态表示一个错误(或多个错误),则状态值还包括有关错误的信息。

还可以返回自己的状态值。

本文讨论状态值以及如何使用它们。

使用状态值的基础知识

如上所述,许多 类中的方法返回一个状态以指示成功或错误。例如,%Library.Persistent中的%Save()方法返回一个状态。对于任何此类方法,请务必获取返回值。然后检查状态,然后适当地继续。基本工具如下:
- 要检查状态是表示成功还是错误,请使用以下任一方法:
-
$$$ISOK$$$ISERR宏,在包含文件%occStatus.inc中定义。此包含文件在所有对象类中自动可用。
-
$SYSTEM.Status.IsOK()$SYSTEM.Status.IsError()` 方法,它们在终端(不能使用宏)中特别方便。

0 0
0 56
文章
· 七月 8, 2022 阅读大约需 2 分钟
第二十二章 安全自定义 Web 应用程序登录

第二十二章 安全自定义 Web 应用程序登录

除了推荐的 REST 应用程序支持之外,产品还支持两种类型的传统 Web 应用程序:CSPZen。在配置使用 CSPZen 的自定义登录页面时,遵循推荐的协议很重要。这些协议提供了更高的安全性,并最大限度地减少了升级到新产品或版本时的不兼容性。

关于创建自定义 CSP 登录页面

创建自定义 CSP 登录页面:

0 0
0 60

你好。

我想访问一个远程SQL Server数据库中的存储过程。我对Object Script很陌生。

该存储过程有3个参数:2个日期时间参数和1个整数。

哪种方法最好呢?我想知道我是否可以在object script中使用链接存储过程的功能或一些SQL语句。

这个存储过程返回一组行,我想读取、转换并保存在一个持久化类中。

先谢谢了。

Hi,

I want to access a Stored Procedure in a remote SQL Server Database. I am quite new to Object script.

The stored procedure has 3 parameters: 2 datetime parameters and 1 integer.

Which is the best way to do that? I'm wondering if I can use the link stored procedure feature inside object script or some SQL statement in Object Script.

0 1
0 96

亲爱的女士们和先生们,在上个月,我改进了我的工具Caché监视器......但首先:名字

选择Caché Monitor这个名字是为了反映该工具与Caché数据库的紧密结合。我想,在可预见的未来,Intersystems Caché这个既定名称很可能会被InterSystems IRIS数据平台完全取代。因此,重塑品牌的步骤成为必要。为了在未来不那么紧密地与一个产品名称联系在一起,我们选择了一个更加中立的新名字: SQL Data Lens

不管叫什么名字,实现与Intersystems产品最紧密的整合仍然是我们的目标。持续的发展也反映在版本号的延续上。上一个版本是Caché Monitor 2.96,下一个版本是SQL Data Lens 3.0

但这不仅仅是重新命名,而且还集成了许多新的功能,例如

0 4
0 138
文章
· 七月 7, 2022 阅读大约需 4 分钟
第二十一章 使用工作队列管理器(四)

第二十一章 使用工作队列管理器(四)

分离和附加工作队列

通常,初始化一组工作程序,将工作项排队,然后等待工作程序完成工作项。但是,可能会遇到工作人员作业完成工作项所需的时间比预期更长的情况,或者无法将单个进程专门用于等待。因此,工作队列管理器使能够将工作队列与进程分离,然后将工作队列附加到同一进程或不同的进程。

例如,假设队列引用了初始化的工作队列。还假设向工作队列中添加了几个工作项。在调用 Wait() 或 WaitForComplete() 来确定正在处理的工作的状态之前,可以使用以下方法:

Detach()

method Detach(ByRef token As %String, timeout As %Integer=86400) as Status
从初始化工作队列时创建的对象引用中分离工作队列对象。 Detach() 方法使任何正在进行的工作能够继续并保留工作队列的当前状态。

token 参数表示一个安全令牌,可以使用它随后将工作队列附加到另一个进程。 timeout 参数是可选的,它指示系统保留分离的工作队列对象的时间量(以秒为单位)。超时期限过后,系统会删除与工作队列关联的所有工作人员作业和信息。超时的默认值为 1 天。

0 0
0 56
文章
· 七月 6, 2022 阅读大约需 4 分钟
第二十章 使用工作队列管理器(三)

第二十章 使用工作队列管理器(三)

管理类别

一个类别是一个独立的worker jobs池。当初始化一组worker jobs时,可以指定提供worker的类别。如果集合中的任何worker jobs在执行work项时请求额外的worker jobs,则新的worker jobs来自同一类别。

例如,假设系统提供的 SQL 类别分配了最多 8 个worker。然后,假设与BusinessIntelligence相关的流程创建了一个类别,并将最多四个worker分配给该类别。如果 SQL 池中的所有worker在给定时间都参与了工作,则 BusinessIntelligence 类别中的worker可能仍然可以立即处理工作项。

系统包括两个不能删除的类别:SQLDefault。 SQL 类别适用于系统执行的任何 SQL 处理,包括查询的并行处理。当在未指定类别的情况下初始化一组worker jobs时,默认类别提worker jobs。

每个类别都具有影响该类别中每个工作队列的行为的属性。这些属性是:

0 0
0 61
文章
· 七月 5, 2022 阅读大约需 5 分钟
第十九章 使用工作队列管理器(二)

第十九章 使用工作队列管理器(二)

基本工作流程

可以通过执行以下步骤来使用工作队列管理器:

  1. ObjectScript 代码划分为工作单元,这些工作单元是满足特定要求的类方法或子例程。
  2. 创建一个工作队列,它是 %SYSTEM.WorkMgr 类的一个实例。为此,请调用 %SYSTEM.WorkMgr 类的 %New() 方法。该方法返回一个工作队列。

可以指定要使用的并行worker jobs的数量,也可以使用默认值,这取决于机器和操作系统。此外,如果已创建类别,则可以指定应从中获取job的类别。

创建工作队列时,工作队列管理器会创建以下工件:
- 包含有关工作队列的信息的全局变量,例如工作队列在哪个命名空间中运行
- 工作队列必须处理的序列化工作单元的位置和事件队列
- 在工作队列完成处理工作单元时创建的完成事件的位置和事件队列

0 0
0 62

大家好!

一周前,在西雅图举办的InterSystems 2022年全球峰会刚刚结束,但对于那些错过会议现场的人,或者由于种种原因无法亲自参加会议的人(或者只是希望重新回忆并再次聆听会议的人)来说,线上主题演讲刚刚开始!

话不多说,请查收全球峰会上来自社区的问候:

//player.bilibili.com/player.html?aid=685511040&bvid=BV1iU4y1S7wy&cid=764402518&page=1
[这是一个嵌入式链接,但由于您拒绝了访问嵌入式内容所需的 Cookie,您无法直接在网站上进行查看。要查看嵌入式内容,您需要在 Cookie 设置中接受所有 Cookie。]

欢迎通过YouTube播放列表观看2022年全球峰会三天所有主题演讲:

0 0
0 96
文章
· 七月 4, 2022 阅读大约需 7 分钟
第十八章 使用工作队列管理器(一)

第十八章 使用工作队列管理器(一)

工作队列管理器是的一项功能,使能够通过以编程方式将工作分配给多个并发进程来提高性能。在引入工作队列管理器之前,可能已经使用 JOB 命令在应用程序中启动多个进程并使用自定义代码管理这些进程(以及任何导致的故障)。工作队列管理器提供了一个高效且直接的 API,使能够卸载流程管理。

代码在多个地方内部使用工作队列管理器。可以将它用于自己的需求,如以下部分中的高级描述。

背景

计算机硬件开发的最新创新趋向于高性能、多处理器或多核架构。与此同时,内存和网络设备的速度也只是慢慢地提高了。 开发了工作队列管理器以响应这些趋势并根据以下原则:

0 0
0 73
文章
· 七月 4, 2022 阅读大约需 11 分钟
IRIS/HealthConnect 高可用机制

高可用性(HA)指的是使系统或应用程序在很高比例的时间内保持运行,最大限度地减少计划内和计划外的停机时间。

维持系统高可用性的主要机制被称为故障转移。在这种方法下,一个故障的主系统被一个备份系统所取代;也就是说,生产系统故障转移到备份系统上。许多HA配置还提供了灾难恢复(DR)的机制,即在HA机制无法保持系统的可用性时,也能及时恢复系统的可用性。

本文简要讨论了可用于基于InterSystems IRIS的应用程序的HA策略机制,提供了HA解决方案的功能比较,并讨论了使用分布式缓存的故障转移策略。

0 0
0 91
文章
· 七月 3, 2022 阅读大约需 5 分钟
第十七章 进程内存

第十七章 进程内存

介绍

进程使用许多不同的资源来实现其目标。其中包括部分或全部 CPU 周期、内存、外部存储、网络带宽等。这篇文章是关于内存使用的。具体来说,它处理为数据存储分配的内存,例如:
- 公共和私有变量

当第一次为它们分配值时,它们被分配了内存空间。在局部数组的情况下,局部变量名称加上所有下标的值的组合引用单个变量值。

除了包含极长字符串的变量外,变量会占用与 $STORAGE 相关的空间。包含极长字符串的变量以不同方式存储,并且不占用 $STORAGE 中的空间。

  • 对象实例

每当实例化一个对象时,都会分配空间来保存对象的当前内容以及它所引用的对象。删除最后一个对象引用时返回该空间。

  • 本地 I/O 缓冲区

将与该进程正在使用的设备相关联的 I/O 缓冲区存储在进程空间中。

0 0
0 65