Record (クラス)
public abstract Record
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.DATA-ACCESS.BASE.
直接継承しているサブクラス: DelegatingRecord, BasicRecord

データ タプルのコンテナ。

説明

Record オブジェクトは RecordSet によって返され、 リレーションにより編成されたデータで使用するものです。ソース RecordSetRecord.record-set プロパティからアクセスできます)には、このデータの性質を定義づけるスキーマが含まれています。 レコードのデータ アイテムは get を使って取得できます。modifiable? RecordSetからのレコードは、set を使って変更でき、delete を使って削除できます。 Record.pending-update? プロパティが true である場合は、元の値とペンディング中の値の両方を使用できます。ペンディング中の値は、revert および commit を使って復帰またはコミットできます。 レコードの状態が RecordState.detached である場合、その record-set プロパティは null になります。この状態のレコードのメソッドやプロパティにアクセスするとエラーになります。 アプリケーションでは Record のインスタンス単体への参照を保持しないようにする必要があります。基本データの変更に応じて、これらのレコードのインスタンスは RecordSet によって( detached 状態になると)破棄されたり、異なる論理行を参照するよう再利用される可能性があります。ですので、Record を参照する変数は、ローカライズされたスコープを超えて構文の利便性を提供するのを制限される必要があります。 例えば、APIの正しい使用法は次の通りです:
{for i:int = 0 below record-view.size do
    let constant r:Record = record-view[i]
    set r["price"] = r["price"] * 0.5
    set r["discount-applied?"] = true
}
しかし、次のようにするとエラーや予期しない結果を引き起こします:
let last-record:Record = record-view[record-view.size - 1]
....
set record-view.source = new-source
set record-view.filter = ""
....
|| error!: record might be detached, or asssociated with other row.
{last-record.delete}

プロパティ
pending-update?:このレコードにペンディング中の更新があるかどうか調べます。
アクセサ public Record.pending-update?:bool
record-set:レコードを格納する RecordSet (存在する場合)。
アクセサ public abstract Record.record-set:#RecordSet
state:このレコードの現在の状態。
アクセサ public abstract Record.state:RecordState

メソッド
commit:ペンディング中の変更をこのレコードにコミットします。
public abstract {Record.commit}:void
compare-field:最適な比較メソッドを使って、このレコードの RecordField 内の値を別の値と比較します。
public {Record.compare-field field-name:String, val:any}:int
compare-record:同じ RecordSet でこの Record と別の RecordRecordField の値を比較します。
public {Record.compare-record
comparison-record:Record,
field-index:int,
using-domain:#Domain = null
}:int
delete:このレコードを削除します。
public abstract {Record.delete}:void
field-pending-update?:このレコード内のフィールドが変更されたかどうか調べます。
public {Record.field-pending-update? name:String}:bool
get:フィールドの値を any として返します。
public abstract {Record.get name:String, pending?:bool = true}:any
get-by-index:指定されたインデックスのフィールドの値を any 型のオブジェクトとして返します。
public {Record.get-by-index field-index:int, pending?:bool = true}:any
is-null?:フィールドに null 値が含まれているかどうか調べます。
public {Record.is-null? name:String, pending?:bool = true}:bool
revert:このレコードを最後にコミットされたときの状態に戻します。
public abstract {Record.revert}:void
set:フィールドの値を any として設定します。
public abstract {Record.set name:String, value:any}:void
validate-value:この値をフィールドに挿入できるかどうかを検証します。
public abstract {Record.validate-value
name:String,
value:any
}:#ValidationException
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize




プロパティ詳細
pending-update? (アクセサ)
アクセサ public Record.pending-update?:bool

このレコードにペンディング中の更新があるかどうか調べます。

説明

commit または revert の呼び出しが影響を及ぼすかどうかを示します。


record-set (アクセサ)
アクセサ public abstract Record.record-set:#RecordSet

レコードを格納する RecordSet (存在する場合)。



state (アクセサ)
アクセサ public abstract Record.state:RecordState

このレコードの現在の状態。

説明

RecordState を参照してください。





メソッド詳細
commit (メソッド)
public abstract {Record.commit}:void

ペンディング中の変更をこのレコードにコミットします。

説明

このメソッドを実行すると、このレコードの state プロパティに次のような変化が起こります。 レコードを現在の値にコミットできない場合、CommitFailed 例外がスローされ、レコードの状態はそのまま変更されません。


compare-field (メソッド)
public {Record.compare-field field-name:String, val:any}:int

最適な比較メソッドを使って、このレコードの RecordField 内の値を別の値と比較します。

field-name: String。 対象フィールド。field-name が見つからない場合は RecordFieldNotFound 例外がスローされます。
val: any。 比較の対象にする値。

説明

戻り値

int 値。


compare-record (メソッド)
public {Record.compare-record
comparison-record:Record,
field-index:int,
using-domain:#Domain = null
}:int

同じ RecordSet でこの Record と別の RecordRecordField の値を比較します。

comparison-record: 比較する Record
field-index: 比較のために使用されるアタッチされた RecordSetRecordFieldsRecordField 整数値のインデックス。
using-domain: 比較を実行するために使用されるオプションの Domainnull の場合、RecordFieldDomain が使用されます。

例外のスロー

戻り値

導入: バージョン 7.0


delete (メソッド)
public abstract {Record.delete}:void

このレコードを削除します。

説明

このメソッドを実行すると、レコードの state プロパティに次のような変化が起こります。


field-pending-update? (メソッド)
public {Record.field-pending-update? name:String}:bool

このレコード内のフィールドが変更されたかどうか調べます。

field-name: String。 レコードにこのフィールドが存在しない場合、RecordFieldNotFound 例外がスローされます。


get (メソッド)
public abstract {Record.get name:String, pending?:bool = true}:any

フィールドの値を any として返します。

name: String
pending?: boolRecord がペンディング中の変更を保持している場合 (つまり、stateRecordState.modified に等しい場合)、この引数によってペンディング中の値か元の値のどちらが返されるかを決定します。既定ではペンディング中の値が返されます。

例外のスロー

このメソッドは、該当する name のフィールドがレコードの record-set に見つからないか、レコードが切り離された場合に RecordFieldNotFound 例外をスローします。


get-by-index (メソッド)
public {Record.get-by-index field-index:int, pending?:bool = true}:any

指定されたインデックスのフィールドの値を any 型のオブジェクトとして返します。

field-index: この Record で表される RecordFields の期待する値のインデックス。
pending?: Record がペンディング中の変更を保持している場合 (つまり、stateRecordState.modified に等しい場合)、この引数によってペンディング中の値か、元の値のどちらが返されるかを決定します。既定ではペンディング中の値が返されます。

例外のスロー

レコードの record-set に対して index が妥当で無い場合や、レコードが切り離されている場合に、このメソッドは RecordFieldNotFound 例外をスローします。
導入: バージョン 7.0


is-null? (メソッド)
public {Record.is-null? name:String, pending?:bool = true}:bool

フィールドに null 値が含まれているかどうか調べます。



revert (メソッド)
public abstract {Record.revert}:void

このレコードを最後にコミットされたときの状態に戻します。

説明

このレコードは、レコードを作成時の状態か最後に復帰またはコミットしたときの状態に戻します。

このメソッドを実行すると、レコードの state プロパティに次のような変化が起こります。 復帰したデータを持つレコードの検証に失敗した場合、ValidationException がスローされ、レコードはそのまま変更されません。


set (メソッド)
public abstract {Record.set name:String, value:any}:void

フィールドの値を any として設定します。

説明

このメソッドを実行すると、レコードの state プロパティに次のような変化が起こります。

例外のスロー



validate-value (メソッド)
public abstract {Record.validate-value
name:String,
value:any
}:#ValidationException

この値をフィールドに挿入できるかどうかを検証します。

説明

アプリケーションでこのメソッドを使い、Record.set を呼び出す前に入力される値をテストすることができます。

戻り値

ValidationException または null

例外のスロー