Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

%INTRANSACTION

トランザクション状態を示します。

Synopsis

%INTRANSACTION
%INTRANS

引数

なし

説明

%INTRANSACTION 文は、トランザクション状態を示す SQLCODE を設定します。

  • トランザクションが現在進行中である場合は SQLCODE=0

  • トランザクションが進行中でない場合は SQLCODE=100

%INTRANSACTION は、トランザクションが進行中である場合に SQLCODE=0 を返します。このトランザクションは、START TRANSACTION または SAVEPOINT によって開始された SQL トランザクションです。TSTART によって開始された ObjectScript トランザクションの場合もあります。

トランザクションの入れ子は、%INTRANSACTION に影響しません。SET TRANSACTION は、%INTRANSACTION に影響しません。

$TLEVEL を使用してトランザクション状態を判定することもできます。%INTRANSACTION は、トランザクションが進行中かどうかだけを示します。$TLEVEL は、トランザクションが進行中かどうかだけでなく、現在のトランザクション・レベル数も示します。

以下の埋め込み SQL の例は、%INTRANSACTION が SQLCODE をどのように設定するかを示しています。

   NEW SQLCODE
   &sql(%INTRANSACTION)
   WRITE "Before %INTRANS SQLCODE=",SQLCODE," TL=",$TLEVEL,!
   &sql(SET TRANSACTION %COMMITMODE EXPLICIT)
   NEW SQLCODE
   &sql(%INTRANSACTION)
   WRITE "SetTran %INTRANS SQLCODE=",SQLCODE," TL=",$TLEVEL,!
  &sql(START TRANSACTION)
   NEW SQLCODE
   &sql(%INTRANSACTION)
   WRITE "StartTran %INTRANS SQLCODE=",SQLCODE," TL=",$TLEVEL,!
   &sql(SAVEPOINT a)
   NEW SQLCODE
   &sql(%INTRANSACTION)
   WRITE "Savepoint %INTRANS SQLCODE=",SQLCODE," TL=",$TLEVEL,!
   &sql(ROLLBACK TO SAVEPOINT a)
   NEW SQLCODE
   &sql(%INTRANSACTION)
   WRITE "Rollback to Savepoint %INTRANS SQLCODE=",SQLCODE," TL=",$TLEVEL,!
   &sql(COMMIT)
   NEW SQLCODE
   &sql(%INTRANSACTION)
   WRITE "After Commit %INTRANS SQLCODE=",SQLCODE," TL=",$TLEVEL

関連項目

FeedbackOpens in a new tab