第五十八章 SQL命令 %INTRANSACTION
显示事务状态。
大纲
%INTRANSACTION
%INTRANS
参数
无
描述
%INTRANSACTION语句设置SQLCODE以指示事务状态:
- 如果当前在事务中,则
SQLCODE=0。
- 如果不在事务中,则
SQLCODE=100。
事务正在进行时,%INTRANSACTION返回。此事务可以是由START TRANSACTION或发起的SQL事务。它也可以是由发起的事务。
事务嵌套对没有影响。对%INTRANSACTION没有影响。
还可以使用确定事务状态。仅指示事务是否正在进行。指示事务是否正在进行以及当前的事务级别数。
示例
以下嵌入式SQL示例显示如何设置:
ClassMethod %INTRANSACTION()
{
n SQLCODE
&sql(%INTRANSACTION)
w "Before %INTRANS SQLCODE=",SQLCODE," TL=",$TLEVEL,!
&sql(SET TRANSACTION %COMMITMODE EXPLICIT)
n SQLCODE
&sql(%INTRANSACTION)
w "SetTran %INTRANS SQLCODE=",SQLCODE," TL=",$TLEVEL,!
&sql(START TRANSACTION)
n SQLCODE
&sql(%INTRANSACTION)
w "StartTran %INTRANS SQLCODE=",SQLCODE," TL=",$TLEVEL,!
&sql(SAVEPOINT a)
n SQLCODE
&sql(%INTRANSACTION)
w "Savepoint %INTRANS SQLCODE=",SQLCODE," TL=",$TLEVEL,!
&sql(ROLLBACK TO SAVEPOINT a)
n SQLCODE
&sql(%INTRANSACTION)
w "Rollback to Savepoint %INTRANS SQLCODE=",SQLCODE," TL=",$TLEVEL,!
&sql(COMMIT)
n SQLCODE
&sql(%INTRANSACTION)
w "After Commit %INTRANS SQLCODE=",SQLCODE," TL=",$TLEVEL
}