| 4D v18entity.save( ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 entity.save( ) 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| プロパティ | 型 | 詳細 | |
| success | ブール | 保存アクションが成功した場合にはtrue、それ以外の場合にはfalse | |
| dk auto merge オプションが使用されていた場合にのみ利用可能: | |||
| autoMerged | ブール | 自動マージが実行された場合にはtrue、それ以外の場合にはfalse | |
| エラーの場合にのみ利用可能: | |||
| status(*) | 数値 | エラーコード、以下参照 | |
| statusText(*) | テキスト | エラーの詳細、以下参照 | |
| ペシミスティック・ロックエラーの場合にのみ利用可能: | |||
| lockKindText | テキスト | "Locked by record" | |
| lockInfo | オブジェクト | ロックの元についての情報 | |
| task_id | 数値 | プロセスID | |
| user_name | テキスト | マシン上でのセッションユーザー名 | |
| user4d_id | テキスト | 4Dデータベースディレクトリでのユーザー名 | |
| host_name | テキスト | マシン名 | |
| task_name | テキスト | プロセス名 | |
| client_version | テキスト | ||
| 深刻なエラーの場合にのみ利用可能(深刻なエラーとは、プライマリーキーを重複させようとした、ディスクがいっぱいであった、などです): | |||
| errors | オブジェクトのコレクション | ||
| message | テキスト | エラーメッセージ | |
| componentSignature | テキスト | 内部コンポーネント署名(例 "dmbg" はデータベースコンポーネントを表します) | |
| errCode | 数値 | エラーコード | 
(*) エラー時にはResult オブジェクトのstatus あるいは statusText プロパティに以下のいずれかの値が返されます:
| 定数 | 値 | コメント | 
| dk status automerge failed | 6 | (dk auto merge オプションが使用されたときのみ) エンティティを保存するときに自動マージオプションが失敗しました。 割り当てられたstatusText: "自動マージ失敗" | 
| dk status entity does not exist anymore | 5 | エンティティはもうデータ内に存在していません。このエラーは以下のような場合に起き得ます: 
 割り当てられたstatusText: "エンティティはもう存在しません" | 
| dk status locked | 3 | エンティティはペシミスティック・ロックでロックされています。 割り当てられたstatusText: "既にロックされています" | 
| dk status serious error | 4 | 深刻なエラーとは低レベルのデータベースエラー(例:重複キーなど)、ハードウェアエラーなどです。 割り当てられたstatusText: "その他のエラー" | 
| dk status stamp has changed | 2 | エンティティの内部的なスタンプ値がデータ内に保存されているエンティティのものと合致しません(オプティミスティック・ロック)。 
 | 
新しいエンティティを作成する場合を考えます:
 C_OBJECT($status;$employee)
 $employee:=ds.Employee.new()
 $employee.firstName:="Mary"
 $employee.lastName:="Smith"
 $status:=$employee.save()
 If($status.success)
    ALERT("Employee created")
 End ifエンティティをdk auto merge オプションを使わずに更新する場合を考えます:
 C_OBJECT($status;$employees;$employee)
 $employees:=ds.Employee.query("lastName=:1";"Smith")
 $employee:=$employees.first()
 $employee.lastName:="Mac Arthur"
 $status:=$employee.save()
 Case of
    :($status.success)
       ALERT("Employee updated")
    :($status.status=dk status stamp has changed)
       ALERT($status.statusText)
 End caseエンティティをdk auto merge オプションを使用して更新する場合を考えます:
 C_OBJECT($status;$employees;$employee)
 
 $employees:=ds.Employee.query("lastName=:1";"Smith")
 $employee:=$employees.first()
 $employee.lastName:="Mac Arthur"
 $status:=$employee.save(dk auto merge)
 Case of
    :($status.success)
       ALERT("Employee updated")
    :($status.status=dk status automerge failed)
       ALERT($status.statusText)
 End case
	プロダクト: 4D
	テーマ: ORDA - エンティティ
	
        
        
	
	ランゲージリファレンス ( 4D v18)
	
	
	
 コメントを追加
コメントを追加