Abortar processamentos
Pessoal, boa tarde
Estou com uma pequena dúvida quanto a uma questão, que para vocês deve ser banal. Tenho um form que realiza uma sequencia de inserts em várias tabelas ao mesmo tempo, mas se falhar em alguma delas deve-se efetuar rollback e abortar o restante do processamento. Só que do jeito que fiz não está abortando o resto do processamento e, mesmo um insert dando errado, os demais abaixo dele são executados. Abaixo segue um exemplo do que estou falando:
PHP
[*]
[*]<?
[*]$User = "paulo";
[*]$Passwd = "cesar";
[*]$banco="teste";
[*]$Conn = OCILogon($User,$Passwd,$banco);
[*]if (!$Conn)
[*] { $e = oci_error();
[*] $Text_Erro = $e['message'];
[*] }
[*]
[*]function BuscaDados($Query,$Conexao) {
[*] $Ok = OCIParse($Conexao, $Query);
[*] OCIExecute($Ok, OCI_DEFAULT);
[*] if (!$Ok)
[*] { $error = oci_error($Conexao);
[*] $erro = $error['message'];
[*] OCIRollback($Conexao);
[*] echo '<p>Erro de execução: '.$erro;
[*] }
[*]}
[*]
[*]?>
[*]<html>
[*]<head>
[*]<title>Teste de PHP</title>
[*]<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
[*]<?
[*]$proxcod = '1';
[*]if($proxcod != "")
[*] {
[*] $query = "INSERT INTO documento(nro_solicitacao,cod_documento) VALUES ('$proxcod','2')";
[*] BuscaDados($query,$Conn);
[*] echo "<P>Deu Certo!!!";
[*] }
[*]
[*]?>
[*]
[*]</head>
[*]<body>
[*]</body>
[*]</html>
[*]
[*]
Neste exemplo, a frase "Deu Certo!!!" está sendo apresentada mesmo quando falha o SELECT e apresenta "Erro de execução" na função.
Como faço para tratar esse problema? Agradeço desde já a atenção.
Paulo Cesar
:(
Discussão (2)
Carregando comentários...