Estou tentando usar o sc_commit_trans(); e sc_rollback_trans(); porém não esta funcionando, tenho inserção no banco no afterinsert e no beforeinsert, porém forcei o erro no beforeinsert quando ele executa o “sc_exec_sql($insert_sql);” ele não cai no catch e da um erro do sc_exec_sql, caso ocorra um erro no afterinsert, preciso que ele faça o rollback das informações inserida no beforeinsert.
Exemplo de como estou fazendo (beforeinsert):
[b]sc_begin_trans()
// Insere os dados na TB_CAD_Tipo_Sanguineo após inserir o TB_CAD_CIDADAO (bloco6)
sc_lookup(dataset,"SELECT SEQ_TB_CAD_TIPO_SANGUINEO.NEXTVAL FROM DUAL");
if(!empty({dataset})):
$ID_TIPO_SANG = {dataset[0][0]};
endif;
try
{
// Monta SQL
$insert_table = 'TB_CAD_TIPO_SANGUINEO'; // Table name
$insert_fields = array( // Field list, add as many as needed
'ID_TIPO_SANG' => "$ID_TIPO_SANG",
'TIPO' => "'{TIPO_SANGUINEO}'",
'RH' => "'{RH}'",
'DOADOR' => "'{DOADOR}'",
);
// Insert record
$insert_sql = 'INSERT INTO ' . $insert_table
. ' (' . implode(', ', array_keys($insert_fields)) . ')'
. ' VALUES (' . implode(', ', array_values($insert_fields)) . ')';
sc_exec_sql($insert_sql);
sc_commit_trans();
}
catch (Exception $e)
{
sc_rollback_trans();
echo "Ocorreu o seguinte erro : ", $e->getMessage(), "\n";
}
// Atribuindo o valor para ser inserido no TB_CAD_CIDADAO
{FK_ID_TIPO_SANG} = $ID_TIPO_SANG;[/b]