Update em outra tabela

Bom dia, essa rotina abaixo inclui o registro, mas se ja existir na esta fazendo o update
Alguem pode ajudar? desde ja agradeço
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$mserv = strstr({Meses_servi},‘01’,true);
IF (!empty($mserv))
{
$codal = ({Codigo_str});
$perio = ({Periodo_str});
$numerod = “M” .$codal . “-01” . “/” . $perio ;
$codigo = {Codigo};
$Mema = “MEN”;
$sql1 = “SELECT Numerod,Codigo,Mema FROM Duplicata
WHERE
(Numerod = $numerod) AND
(Codigo = $codigo) AND
(Mema = $Mema)”;
sc_lookup(ds, $sql1);
if (empty({ds}))
{
$sql = “INSERT INTO
Duplicata(Numerod,codigo,Mema)
VALUES
(”. sc_sql_injection($numerod). ", ".
sc_sql_injection($codigo). ", ".
sc_sql_injection($Mema). “)”;

             sc_exec_sql($sql);
       }
       else
       {
       //sc_error_message('Registro ja existe.');
	   $Valorm = {Descinco};
	   $Aprop  = 255;	   
       $update_table  = Duplicata;      // Table name
       $update_where  = "(Numerod = $numerod) AND
                        (Codigo = $codigo) AND
                        (Mema = $Mema)" ;
       $update_fields = array(   // Field list, add as many as needed
                       "Valor = $Valorm",
		               "Apropriacao = $Aprop",); 

       $update_sql = 'UPDATE ' . $update_table
                     . ' SET '   . implode(', ', $update_fields)
                     . ' WHERE ' . $update_where;
      sc_exec_sql($update_sql);   
      }

}

Coloca em modo debug.

Esse código pode ficar muito mais simples.

após sc_lookup teste usando ISSET em vez de EMPTY

OK Haroldo , mas como colocar em modo debug? , e em qual evento essa rotina se colocaria melhor? obrigado

após o sc_exec_sql($update_sql); coloque sc_commit_trans();

Em aplicação/ configuração habilite modo debug e janela ajax output

1 Curtida