%INTRANSACTION (SQL)
トランザクション状態を示します。
構文
%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