ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
dataStore.startTransaction( )
|
dataStore.startTransaction () | ||||||||
このコマンドは引数を必要としません | ||||||||
dataStore.startTransaction( ) メソッドは、適用するデータストアに合致するデータベースとの、カレントプロセス内でのトランザクションを開始します。トランザクションプロセス中にデータストアのエンティティに加えられた変更は、トランザクションが確定されるかキャンセルされるまで一時的に保管されたままになります。
注: このメソッドがメインのデータストア(ds コマンドで返されるデータストア)で呼ばれた場合、トランザクションはメインのデータストアとその下にあるデータベースで実行される全てのオペレーションに適用されます。これはつまりそこで実行されるORDA とクラシック言語も含まれます。
複数のトランザクションをネストすること(サブトランザクション)が可能です。個々のトランザクションまたはサブトランザクションは、それぞれキャンセルするか確定される必要があります。メインのトランザクションがキャンセルされた場合、それに付随するサブトランザクションは (たとえ個々に dataStore.validateTransaction( ) メソッドによって評価されていたとしても) すべてキャンセルされるという点に注意してください。
C_OBJECT($connect;$ds;$person;$status)
C_TEXT($choice)
C_BOOLEAN($error)
Case of
:($choice="local")
$ds:=ds
:($choice="remote")
$connect:=New object("hostname";"111.222.3.4:8044")
$ds:=Open datastore($connect;"myRemoteDS")
End case
$ds.startTransaction()
$person:=$ds.Persons.query("lastname=:1";"Peters").first()
If($person#Null)
$person.lastname:="Smith"
$status:=$person.save()
End if
...
...
If($error)
$ds.cancelTransaction()
Else
$ds.validateTransaction()
End if
dataStore.cancelTransaction( )
dataStore.validateTransaction( )
START TRANSACTION
プロダクト: 4D
テーマ: ORDA - データストア
初出: 4D v18
ランゲージリファレンス ( 4D v19)
ランゲージリファレンス ( 4D v19.1)
ランゲージリファレンス ( 4D v19.4)
ランゲージリファレンス ( 4D v19.5)
ランゲージリファレンス ( 4D v19.6)
ランゲージリファレンス ( 4D v19.7)
ランゲージリファレンス ( 4D v19.8)