InterSystems IRIS オブジェクトと SQL
このチュートリアルで、さまざまなクラス・メソッドを学習、記述しました。InterSystems IRIS では、クラスの永続オブジェクトにアクセスするコードを作成できますが、そのほかにテーブルの行にアクセスする SQL クエリも作成できます。^PersonD グローバルに格納した Person レコードは、1) Person クラスの永続オブジェクト、2) Person リレーショナル・テーブルの行と考えることができます。このチュートリアルでは、クラス、オブジェクト、プロパティ、メソッド、クエリについての説明は省略しますが、これらのトピックはオンライン学習やドキュメントで学ぶことができます。入門編としては learning.intersystems.comOpens in a new tab がお勧めです。このチュートリアルの最後の数ページでは、InterSystems IRIS オブジェクトについて簡単に説明します。
以下に、データ入力クラスで作成したものと同じ永続 Person オブジェクトのクラス定義の例を示します。
-
Name、Phone、DOB という 3 つのプロパティがあります。Name と Phone ではパターン・マッチングを使用して検証を行い、DOB では $horolog に基づく条件を使用します。
-
LastName と FirstName 用に計算プロパティが 2 つあります。
-
Name、Phone (一意)、および DOB のインデックスと、ID 番号のビットマップ・インデックス (エクステント・インデックス) があります。
VS Code - ObjectScript
/// Persistent class for Persons
Class ObjectScript.Person Extends %Persistent
{
Property Name As %String(PATTERN="1U.L1"",""1U.L");
Property LastName As %String [ Calculated, SqlComputeCode = {set {LastName}=$p({Name},",",1)}, SqlComputed ];
Property FirstName As %String [ Calculated, SqlComputeCode = {set {FirstName}=$p({Name},",",2)}, SqlComputed ];
Property Phone As %String(PATTERN="3n1""-""3n1""-""4n");
Property DOB As %Date(MAXVAL = "$piece($horolog, "","", 1)");
/// Index for LastName,FirstName
Index NameIndex On (LastName, FirstName);
/// Uniqueness index for property Phone
Index PhoneIndex On Phone [ Unique ];
/// Index for property DOB
Index DOBIndex On DOB;
/// Bitmap index of ID numbers
Index IDIndex [Extent, Type = bitmap];
}