Modifica o valor de alguns campos e registros da tabela corrente.

Sintaxe

REPLACE Campo WITH Exp [, Campo2 WITH Exp2 …] [FOR CondFor] [WHILE CondWhile] [NEXT nRecs] [RECORD nRecno] [REST] [ALL]

ArgumentoObrigat.TipoDescrição
CampoSimNome do campo a ser alterado
ExpSimExpressão em ADVPL com valor a ser colocado no campo especificado

CondFor

Não

Expressão em ADVPL a ser resolvida para que o registro seja alterado

CondWhileNão

Expressão em ADVPL que determina quando a alteração deve parar (quando a expressão retornar .F.)

nRecs

Não

N

Quando registros devem ser alterados

nRecnoNãoNNúmero do recno do registro a ser alterado

Descrição

Este comando é utilizado para alterar o valor de determinado campo em alguns registros da tabela corrente, onde o campo escolhido recebe o valor da expressão para os registros dentro do escopo definido.

Se não forem especificadas as condições para que o registro seja alterado, modifica toda a tabela, como se estivesse especificada a opção “ALL”.

Pode-se especificar um escopo para que os registros sejam alterados através das opções “FOR CondFor” e “WHILE CondWhile“.

Pode-se também limitar o número de registros a serem alterados através da opção “NEXT nRecs” e determinar que a alteração dos registros deve-se iniciar a partir do registro atual com “REST”, mas, caso contrário, o comando executa um DBGOTOP() antes de iniciar a alteração.

Se é desejado alterar apenas determinado registro pode-se defini-lo através da especificação do recno com “RECORD nRecno“.

Exemplo

Este exemplo demonstra como utilizar o comando REPLACE alterar todos os registros dentro do escopo, onde o campo “Valor” receberá “Valor1+Valor2-Valor3*0.1” e o campo “DiaTran” receberá a data atual. Este escopo é definido por Idade > 20, até que o nome seja maior ou igual a “VVV”, começa a deleção a partir do registro atual e marca apenas 10 registros:

USE Cliente VIA “CTREECDX” NEW

REPLACE Valor WITH Valor1+Valor2-Valor3*0.1, DiaTran WITH Date() FOR Idade>20 WHILE Nome<“VVV” NEXT 10 REST

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Necessita de ajuda?