Cancelar inserção no banco de dados - RESOLVIDO

Bom dia a todos,
Alguem poderia me auxilio sobre como interrompo uma inserção na base dados.

Eu tenho uma rotina e coloquei a mesma no onbeforeinsert e tambem testei no onvalidade do evento do formulário,

if ($id == ‘’) {
$lib = $ns;
} else if ((strlen($ns) != 14) OR (hexadecimal($ns) == FALSE)) {
return ‘Número de série inválido’;
return ‘Número de série da aplicação inválido’;
sc_rollback_trans;
}

Tentei colocar no else o sc_rooback e tb o sc_exit, porem aparece a mesnagem de erro mas os dados são enviados ao banco de dados.

Conto com a colaboração dos amigos.

Grato

Sc_error_message e sc_error_exit

1 Curtida

Bom dia Haroldo,

Então utilizei esses tb, mas mesmo assim ele mostra a mensagem que eu fiz na rotina mas grava no banco de dados.

segue meu codigo…

// verifica numero de série valido
if ($id == ‘’) {
return ‘’;
} else if ((strlen($ns) != 14) OR (hexadecimal($ns) == FALSE)) {
return ‘Número de série inválido’;

sc_error_exit;
	
} else {
  $body = uncriptografe(substr($ns, 0, 12), get_id_application($id));
  $key = get_key($body);
  if ($key == substr($ns, 12, 2)) {
    $pre_cod = get_hex_date($dti) . get_hex_date($dtf) . get_max_exec($max) . substr($body, 0, 4);
    $serial_hd = substr($body, 4, 8);
	{nseriehd} = $serial_hd; 
[nshd]= $serial_h;
    $res = criptografe($pre_cod, $serial_hd) . get_key($pre_cod);
  } else {
    $res = 'Erro';
	  
  }
  return $res;
}

}

TEm mais alguma verificação?

Grato Mestre

evento onvalidate as macros mencionadas acima.

1 Curtida

Melhor validar os dados antes de inserir e, caso inválido, mostrar a msg de erro(sc_error_message) e interromper com a macro (sc_error_exit) como disse o Haroldo.
ex:
image