文章
· 八月 18, 2023 阅读大约需 2 分钟

第二章 IRIS 编程简介 - 同时使用类和例程

第二章 IRIS 编程简介 - 同时使用类和例程

同时使用类和例程

IRIS 中,可以使用例程中的类。例如,下面显示了例程的一部分,其中我们引用了 Sample.Employee类:

 //get details of random employee and print them
showemployee() public {
    set rand=$RANDOM(10)+1        ; rand is an integer in the range 1-10
    write "Your random number: "_rand
    set employee=##class(Sample.Employee).%OpenId(rand)  
    do employee.PrintEmployee()
    write !,"This employee's salary: "_employee.Salary

    }

类似地,方法可以调用例程中的标签。例如,以下代码调用例程employeeutils中的标签ComputeRaise

Method RaiseSalary() As %Numeric
{
    set newsalary=$$ComputeRaise^employeeutils(..Salary)
    return newsalary
}

Globals简介

IRIS 支持一种在其他编程语言中不存在的特殊变量;这是一个全局变量,通常简称为Global。在 IRIS 中,术语Global表示该数据可供访问该数据库的所有进程使用。这种用法与其他编程语言不同,在其他编程语言中,Global意味着“可供该模块中的所有代码使用”。Global的内容存储在 IRIS 数据库中

IRIS 中,数据库仅包含Global;甚至代码也存储在Global中。在最低级别,对数据的所有访问都是通过直接Global访问完成的,即通过使用直接与Global一起使用的命令和函数。

当使用持久类时,可以通过以下方式创建、修改和删除存储的数据:

  • ObjectScript 中,使用 %New()%Save()%Open()%Delete() 等方法。
  • Python 中,使用 _New()_Save()_Open()_Delete() 等方法。
  • ObjectScript 中,使用直接global 访问。
  • Python中,使用gref()方法提供直接的全局访问。
  • 通过使用 SQL

在内部,系统始终使用直接global访问。

程序员不一定必须直接使用global,但了解它们以及它们的使用方式会很有帮助。

讨论 (0)1
登录或注册以继续