Como fazer um update via AdvPL

Hoje pessoal, vou mostrar como usar a função TCSQLExec para executar um update via AdvPL.

Antes de começarmos, ressalto que todas as operações de manipulação de dados (inserção, alteração e exclusão), devem ser feitas usando as próprias telas do ERP ou por meio de execução automática (ExecAuto).

E se realmente precisar manipular, que seja em tabelas customizadas para não impactar no funcionamento do sistema.

Primeiramente, precisamos iniciar o controle de transações, com Begin Transaction / End Transaction.

E então, montamos uma query de atualização em uma variável caractere, como por exemplo, cQryUpd.

Depois, executamos essa query com TCSQLExec, e se houve algum erro, nós desarmamos a transação.

Abaixo o exemplo:

Begin Transaction
	cNovoStatus := "A"
	cCodigo := "000111"
	
	//Monta o Update
	cQryUpd := " UPDATE " + RetSqlName("Z39") + " "
	cQryUpd += "     SET Z39_STATUS = '" + cNovoStatus + "' "
	cQryUpd += " WHERE "
	cQryUpd += "     Z39_FILIAL = '" + FWxFilial('Z39') + "' "
	cQryUpd += "     AND Z39_CODIGO = '" + cCodigo + "' "
	cQryUpd += "     AND D_E_L_E_T_ = ' ' "

	//Tenta executar o update
	nErro := TcSqlExec(cQryUpd)
	
	//Se houve erro, mostra a mensagem e cancela a transação
	If nErro != 0
		MsgStop("Erro na execução da query: "+TcSqlError(), "Atenção")
		DisarmTransaction()
	EndIf
End Transaction

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

Deixe uma resposta