ajuda com comando sc_exec_sql

gostaria de saber como capturar o erro de inserção no banco de dados quando uso o comando “sc_exec_sql” ex:

sc_exec_sql(“UPDATE
TB_CAD_CORREIO
SET
DATA_EXCLUIU = ‘2222222222222222222222’
WHERE
(ID_CORREIO = $codigo)”);

o DATA_EXCLUIU inseri um dado manualmente para forçar o erro, gostaria de saber como validar se esse UPDATE deu erro ou não para eu fazer um tratamento encima do erro.

alguma coisa do tipo:

if(sc_exec_sql == false){
“ação 1”
} else {
“ação 2”
}

será tem como? preciso muito disso… se algum puder dar uma luz…

Já discutimos isso aqui, a macro não retorna erro.
Talvez o PDO, tenha o erro registrado, mas só investigando.

olá haroldo, tem alguma sugestão, de como contornar?

Não te como fazer com a macro.
Faça o UPDATE e depois um SELECT para ver se foi executado.
Aí baseado nele vc faz a tomada de decisão.
[]s

A solução que eu encontrei, como não consegui fazer via SC, criei um método em php, no qual eu passo a sql por parametro, faço a conexão com o oracle e testo a sql antes de executar, caso alguem tenta a mesma dificuldade que estou tendo, e utilize oracle, posso disponibilizar minha logica.

Primeiro: Após um sc_exec_sql, se acontecer algum erro o SC já faz o rollback e da um exit na aplicação mostrando o erro. Então, não precisa tratar o erro, se quiser saber o nm de linhas afetadas segue abaixo algo, se te ajudar.

$sql= "INSERT INTO mestre(valor) VALUES('20')";
sc_exec_sql($sql);

echo $this->Db->Affected_Rows(); //atributo que contem numero de linha afetadas
echo $this->Db->ErrorMsg(); //atribuo que contem o erro msg de erro

PS: Testei em um blank, teste na sua ai e veja se funciona também…

1 Curtida