首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏hml_知识记录

    嵌入式Python概述(一)

    还可以导入 Python 包,无论它们是自定义的还是公开的,并在ObjectScript 代码中使用它们。 Python 对象是 ObjectScript 中的一等公民,反之亦然。 使用来自 ObjectScript 的 Python 库 - 此方案假设 ObjectScript 开发人员,并且希望利用 Python 开发人员社区可用的众多 Python 库的强大功能。 一起使用 ObjectScript 和 Python — 这个场景假设在一个由 ObjectScript 和 Python 开发人员组成的混合团队中,并且想知道如何一起使用这两种语言。 使用 ObjectScript 中的 Python 库使用 Embedded Python,ObjectScript 开发人员可以轻松地使用来自 IRIS 的众多可用 Python 库(通常称为“包”) 在 ObjectScript 中,导入已安装的包以加载包并将其作为对象返回。然后,可以像使用实例化的 ObjectScript 类一样使用该对象。

    1.6K10编辑于 2022-08-03
  • 来自专栏hml_知识记录

    使用嵌入式 Python (四)

    弥合 ObjectScript 和嵌入式 Python 之间的差距由于 ObjectScript 和 Python 语言之间的差异,将需要了解一些有助于弥合语言之间差距的信息。 在 ObjectScript 方面,%SYS.Python 类允许从 ObjectScript 使用 Python。 在 Python 方面,iris 模块允许使用 Python 中的 ObjectScript。在 Python 中,键入 help(iris) 以获取其方法和函数的列表。 () 函数实际上是内置模块的一个方法,因此现在可以在 ObjectScript 中使用此函数:USER>do builtins.print("hello world!") 标识符名称ObjectScript 和 Python 之间命名标识符的规则是不同的。

    84320编辑于 2022-08-04
  • 来自专栏hml_知识记录

    SQL命令 CREATE PROCEDURE(二)

    可用的选项是: 语言OBJECTSCRIPT(用于OBJECTSCRIPT)或语言SQL。过程代码在code_body中指定。 可以在SQL或ObjectScript中指定此代码。使用的语言必须与language子句匹配。但是,ObjectScript中指定的代码可以包含嵌入式SQL。 ObjectScript程序代码用花括号括起来:{code}。 代码行必须缩进。 下面的示例将CREATE PROCEDURE与调用嵌入式SQL的ObjectScript代码一起使用。 注意,在过程的LANGUAGE ObjectScript关键字后面的花括号中包含ObjectScript代码。 在ObjectScript代码中有嵌入式SQL代码,用&sql标记,用括号括起来。

    1K20编辑于 2022-04-14
  • 来自专栏hml_知识记录

    SQL命令 CREATE METHOD(二)

    允许的子句是Language OBJECTSCRIPT(对于ObjectScript)或Language SQL。如果省略LANGUAGE子句,则默认为SQL。 可以在SQL或ObjectScript中指定此代码。使用的语言必须与LANGUAGE子句匹配。但是,在ObjectScript中指定的代码可以包含嵌入式SQL。 如果指定的代码是SQL, IRIS会在生成将SQL嵌入到ObjectScript“包装器wrapper”中的方法时提供额外的代码行,提供过程上下文处理程序(如有必要),并处理返回值。 ,则必须用大括号将ObjectScript代码括起来。 请注意,在方法的LANGUAGE ObjectScript关键字后面,用花括号括住ObjectScript代码。 在ObjectScript代码中有嵌入式SQL代码,用&sql标记,用括号括起来。

    60220编辑于 2022-04-14
  • 来自专栏hml_知识记录

    使用嵌入式 Python (六)

    异常处理IRIS 异常处理程序可以处理 Python 异常并将它们无缝传递给 ObjectScript。 Python 字符串在传回 ObjectScript 时会从 UTF-8 转换为 IRIS 字符串,这可能会产生宽字符。 Python 字节对象作为 8 位字符串返回给 ObjectScript。 在互操作性产品中使用嵌入式 Python如果正在为 IRIS 中的互操作性产品编写自定义业务主机类或适配器类,则任何回调方法都必须用 ObjectScript 编写。 但是,回调方法中的 ObjectScript 代码可以使用 Python 库或调用 Python 中实现的其他方法。 ) 是用 ObjectScript 编写的Python。

    1.4K20编辑于 2022-08-04
  • 来自专栏hml_知识记录

    Caché 变量大全 $ETRAP 变量

    Caché 变量大全 $ETRAP 变量 包含错误发生时要执行的ObjectScript命令字符串。 大纲 $ETRAP $ET 描述 $ETRAP包含一个字符串,该字符串指定发生错误时执行的一个或多个ObjectScript命令。 注意:$ETRAP是可用的对象脚本错误处理工具中最不理想的。 ,假设将$ETRAP设置为一个包含GOTO命令的字符串,以将控制转移到错误处理例程: SET $ETRAP="GOTO LOGERR^ERRROU" Caché然后在$ETRAP中紧接着产生错误条件的ObjectScript $ETRAP值是一行ObjectScript代码 因为$ETRAP的字符串值是可执行的ObjectScript命令,所以字符串的长度不能超过ObjectScript例程行的最大长度。 Caché错误处理工具 $ETRAP特殊变量是几种ObjectScript语言工具之一,能够控制处理和记录应用程序中发生的错误。 错误处理的首选Caché功能是块结构的TRY和CATCH命令。

    74040编辑于 2022-05-10
  • 来自专栏hml_知识记录

    SQL命令 CREATE QUERY

    ObjectScript程序代码用花括号括起来。ObjectScript代码行必须缩进。 描述 CREATE QUERY语句在类中创建一个查询。 允许的子句是Language OBJECTSCRIPT或Language SQL。如果省略LANGUAGE子句,则默认为SQL。 如果语言是OBJECTSCRIPT,则会生成%Library.Query类型的类查询。 code_body 要创建的查询的程序代码。可以在SQL或ObjectScript中指定此代码。 但是,在ObjectScript中指定的代码可以包含嵌入式SQL。 如果指定的代码是SQL,则它必须由单个SELECT语句组成。 ObjectScript代码用大括号括起来。如果EXECUTE()或FETCH()丢失,则编译时会生成SQLCODE-46错误。

    1.4K30编辑于 2022-04-14
  • 来自专栏hml_知识记录

    触发器关键字Foreach,Internal,Language,NewTable

    注意,TSQL不支持行级触发器,因此Language关键字的设置必须是objectscript。 row/object — 此触发器由受触发语句或通过对象访问进行的更改影响的每一行触发。 请注意,TSQL不支持行级触发器,因此Language关键字的设置必须为objectscript。这个选项定义了一个统一触发器,之所以这么叫,是因为它是由通过SQL或对象访问发生的数据更改触发的。 ObjectScript和TSQL都支持语句级触发器; 即Language关键字的设置分别为objectscript或tsql。详情控制何时触发触发器。默认如果省略此关键字,则触发器为行级触发器。 —此触发器用objectscript编写(默认)。 默认如果省略这个关键字,语言就是ObjectScript。第136章 触发器关键字 - NewTable指定存储受事件影响的行或语句的新值的转换表的名称。

    84020编辑于 2022-07-07
  • 来自专栏hml_知识记录

    嵌入式Python概述(三)

    一起使用 ObjectScript 和 PythonIRIS 让 ObjectScript 和 Python 程序员的混合团队轻松协作。 Python 或 ObjectScript 调用这两种方法。 TaxID: G468此 ObjectScript 代码示例展示了如何打开相同的 Company 对象并调用这两种方法。 TaxID: G468在 Python 和 ObjectScript 之间传递数据虽然 Python 和 ObjectScript 在许多方面都兼容,但它们有许多自己的数据类型和结构,有时在将数据从一种语言传递到另一种语言时需要进行一些数据转换 之前看到了一个示例,即从 ObjectScript 向 Python 传递命名参数的示例。

    99710编辑于 2022-08-04
  • 来自专栏hml_知识记录

    SQL命令 CREATE PROCEDURE(一)

    code_body ; END CREATE PROCEDURE procname(parameter_list) [ characteristics ] LANGUAGE OBJECTSCRIPT LANGUAGE OBJECTSCRIPT,LANGUAGE SQL - 可选-一个关键字子句,指定用于code_body的编程语言。 指定语言OBJECTSCRIPT(用于OBJECTSCRIPT)或语言SQL。 如果省略LANGUAGE子句,则默认为SQL。 ObjectScript程序代码用花括号括起来。 ObjectScript代码行必须缩进。 如果LANGUAGE OBJECTSCRIPT,则code_body必须调用Execute()和Fetch()方法,以生成公开为存储过程的查询。

    1.8K30编辑于 2022-04-14
  • 来自专栏hml_知识记录

    SQL函数 $LISTLENGTH

    您可以使用 SQL 或 ObjectScript 的 $LISTBUILD 或 $LISTFROMSTRING 函数创建列表。 您可以使用 SQL 或 ObjectScript $LIST 函数从现有列表中提取列表。 描述 $LISTLENGTH 返回列表中元素的数量。 此函数返回 SMALLINT 类型的数据。 Variable not set } } DHC-APP>d ##class(PHA.TEST.SQLFunction).ListLength2() Error code;-400 如果使用 ObjectScript ##class(PHA.TEST.SQLFunction).ListLength3() The number of elements is 1 null列表 SQL $LISTLENGTH 函数和ObjectScriptObjectScript 中,空字符串 ("") 用于表示空列表,即不包含任何元素的列表。

    45140编辑于 2022-04-08
  • 来自专栏hml_知识记录

    SQL命令 CREATE TRIGGER(二)

    带有LANGUAGE OBJECTSCRIPT的CREATE TRIGGER语句不能包含这些子句。 SQL触发器代码作为嵌入式SQL执行。 这意味着IRIS将SQL触发器代码转换为ObjectScript; 因此,如果查看与SQL触发器代码对应的类定义,将在触发器定义中看到Language=objectscriptObjectScript触发代码 如果LANGUAGE OBJECTSCRIPT,则CREATE TRIGGER语句不能包含引用子句、WHEN子句或UPDATE OF子句。 使用LANGUAGE OBJECTSCRIPT指定这些仅sql子句将分别导致编译时SQLCODE错误-49、-57或-50。 如果LANGUAGE OBJECTSCRIPT,则触发语句是一个由一个或多个OBJECTSCRIPT语句组成的块,用花括号括起来。

    2.4K20编辑于 2022-04-18
  • 来自专栏hml_知识记录

    使用嵌入式 Python (三)

    ObjectScript 调用嵌入式 Python 代码使用 Python 库嵌入式 Python 让可以轻松访问数以千计的有用库。 给定一个文件位置,以下 ObjectScript 方法 CreateSamplePDF() 创建一个示例 PDF 文件并将其保存到该位置。 调用它,就像调用用 ObjectScript 编写的方法一样。 从 ObjectScript 调用它,如下所示:USER>zwrite ##class(User.functzconvert).tzconvert($zdatetime($h,3),"US/Eastern 运行任意 Python 命令有时,当开发或测试嵌入式 Python 代码时,从 ObjectScript 运行任意 Python 命令会很有帮助。

    1K20编辑于 2022-08-04
  • 来自专栏hml_知识记录

    方法关键字PlaceAfter,Private,ProcedureBlock,PublicList

    仅当方法是用ObjectScript编写的时才适用。用法类定义指定默认情况下类中的方法是否为过程块。 请使用以下语法:Method name(formal_spec) As returnclass [ ProcedureBlock=0 ] { //implementation }详解此关键字指定ObjectScriptObjectScript中,方法可以实现为过程块,也可以不实现。过程块强制变量作用域:方法不能看到其调用方定义的变量。新的应用程序使用过程块;非过程块的存在是为了向后兼容。 仅当方法是用ObjectScript编写并且是过程块时才适用。 详解仅当方法是用ObjectScript编写并且是过程块时,才使用此关键字。在ObjectScript中,公用列表指定范围为公共变量的变量列表。

    30510编辑于 2022-07-07
  • 来自专栏hml_知识记录

    使用嵌入式 Python (五)

    通过引用传递参数用 ObjectScript 编写的方法中的参数可以通过值或引用传递。在下面的方法中,签名中第二个和第三个参数前面的 ByRef 关键字表示它们打算通过引用传递。 set bread = "whole wheat" set filling1 = "almond butter" set filling2 = "cherry preserves"}从 ObjectScript 请注意,在检查 Python 方法返回给 ObjectScript 的值时,不需要使用方法 True()、False() 和 None()。 a > b在 Python 中运行时,可以看到如果参数 a 大于 b,则该方法返回 True,否则返回 False:>>> mymodule.isgreaterthan(5, 4)True但是,当从 ObjectScript }>>> print(mycar){'make': 'Toyota', 'model': 'RAV4', 'color': 'blue'}>>> print(mycar["color"])blue在 ObjectScript

    76820编辑于 2022-08-04
  • 来自专栏hml_知识记录

    使用多维存储(全局变量)(一)

    ObjectScript中,这些操作是使用SET命令完成的。 下面的例子定义了一个名为Color(如果还不存在)的全局变量,并将值“Red”与之关联。 例如,ObjectScript语句: KILL ^Data 删除整个^Data全局变量。对此全局变量的后续引用将返回<UNDEFINED>错误。 ObjectScript语句: KILL ^Data(100) 删除^Data全局变量中节点100的内容。 ObjectScript ZKILL命令用于删除指定的全局或全局下标节点。它不会删除子代子节点。 WRITE、ZWRITE和ZZDUMP命令 可以使用各种ObjectScript显示命令显示全局变量或全局变量子节点的内容。WRITE命令以字符串形式返回指定全局或子节点的值。

    1.2K30编辑于 2022-06-08
  • 来自专栏hml_知识记录

    类关键字Hidden,Inheritance,Language,LegacyInstanceContext

    (但是,如果在“打开”对话框中键入该类的名称,或者在使用VS Code - ObjectScript时将其保存到本地工作区,仍然可以在Studio中打开该类。)对子类的影响此关键字不是继承的。 用法若要指定用于实现此类中的方法的默认语言,请使用以下语法:Class MyApp.MyClass [ Language = language ] { //class members}其中语言是下列之一:objectscriptObjectScript (默认)tsql — Transact-SQL或者省略这个关键字。 默认如果省略这个关键字,语言就是ObjectScript。注意:不能在类级别指定Language = ispl只能将此值用于方法。 注意:分片类的方法的默认语言不能是ObjectScript以外的任何语言。第二十四章 类关键字 - LegacyInstanceContext指定此类中的实例方法是否可以使用现已过时的%this变量。

    31220编辑于 2022-07-06
  • 来自专栏hml_知识记录

    SQL命令 CREATE TABLE(三)

    USER、CURRENT_USER和SESSION_USER默认关键字将字段值设置为ObjectScript $USERNAME特殊变量。 OBJECTSCRIPT文字关键字短语使您能够通过提供包含ObjectScript代码的带引号的字符串来生成默认值,如下例所示: CREATE TABLE mytest ( TestId INT ObjectScript为数据排序规则转换提供了%SYSTEM.Util类的Colation()方法。 COMPUTECODE COMPUTECODE数据约束指定ObjectScript代码来计算此字段的默认数据值。ObjectScript代码在大括号内指定。 在ObjectScript代码中,可以使用大括号分隔符指定SQL字段名称。ObjectScript代码可以由多行代码组成。它可以包含嵌入式SQL。

    1.7K20编辑于 2022-04-14
  • 来自专栏hml_知识记录

    SQL函数 $LISTTOSTRING

    可以使用 SQL 或 ObjectScript 的 $LISTBUILD 或 $LISTFROMSTRING 函数创建列表。 可以使用 SQL 或 ObjectScript $LIST 函数从现有列表中提取列表。 delimiter - 可选 — 插入以分隔子字符串的分隔符。 可以使用 SQL $LISTBUILD 函数或 ObjectScript $LISTBUILD 函数创建列表。 可以使用 SQL $LISTFROMSTRING 函数或 ObjectScript $LISTFROMSTRING 函数将分隔字符串转换为列表。

    98320编辑于 2022-04-11
  • 来自专栏hml_知识记录

    SQL语言元素(一)

    下划线(_)作为SQL连接操作符提供,以保证ObjectScript的兼容性。 此连接操作符只能用于连接两个字符串。 $LENGTH返回ObjectScript表示长度。 长度不计算尾随空格; 所有其他长度函数都计算末尾的空格。 该功能与ObjectScript兼容。 ObjectScript和SQL 当SQL NULL输出到ObjectScript时,它由ObjectScript空字符串("")表示,长度为0的字符串。 当SQL零长度字符串数据输出到ObjectScript时,它由包含$CHAR(0)的字符串表示,该字符串长度为1。

    2.2K10编辑于 2022-06-02
领券