Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

paulocf

Abortar processamentos

Recommended Posts

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

:(

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.