× Linguagem de Programação ADVPL

Perguntas Ajuda para deletar registros

Mais
11 anos 7 meses atrás #13004 por clistenis
Galera boa tarde preciso da ajuda de todos....

Tenho um trecho de um fonte utilizado para cancelar registros de uma OP, a tabela SZ1, guardam registros amarrados a OP, porém há necessidades que tenho que cancelar estes registros e o fonte abaixo desenvolvido pela TOTVS apaga apenas o primeiro registro (se tenho 5 registros ele apaga apenas o primeiro).

DbSelectArea("SZ1")
SZ1->(DbSetOrder(3)) //Filial+Ordem Producao
if SZ1->(DbSeek(xFilial("SZ1")+cGet1)) //cGet1 = Numero da Ordem de Produção
While SZ1->(!EoF()) .AND. SZ1->Z1_ORDPROD == cGet1
SZ1->(RecLock("SZ1",.F.))
SZ1->(DbDelete())
SZ1->(MsUnLock())
SZ1->(DbSkip(1))
EndDo
EndIf

Alguém poderia dar uma força ai.

Obrigado

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 7 meses atrás #13005 por kanaamlrr
Respondido por kanaamlrr no tópico Ajuda para deletar registros
Cara, provavelmente, quando dá o primeiro delete ele está desposicionando o registro, tenta assim:


DbSelectArea("SZ1")
SZ1->(DbSetOrder(3)) //Filial+Ordem Producao
if SZ1->(DbSeek(xFilial("SZ1")+cGet1)) //cGet1 = Numero da Ordem de Produção
While SZ1->(DbSeek(xFilial("SZ1")+cGet1))
SZ1->(RecLock("SZ1",.F.))
SZ1->(DbDelete())
SZ1->(MsUnLock())
EndDo
EndIf

a rotina pode ficar um pouco mais lenta por conta da quantidade de buscas, mas com isso você vai conseguir deletar todos os registros.

testa ai e diz pra gente se deu certo.
Abraço!

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 7 meses atrás #13009 por clistenis
Respondido por clistenis no tópico Ajuda para deletar registros
Olá amigo Kanaãm boa tarde tudo bem?

Obrigado pela resposta mais vou testar a sua forma.

O problema que encontrei aqui e que funcionou é que retirei o If antes do SZ1->DBSEEK

Coloquei alguns alerts e me foi informado de forma correta e cancelou todos os registros também.

Mesmo assim obrigado.....,

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.128 segundos
Joomla templates by a4joomla