Página 1 de 1

marca para deleção (dbdelete())

Enviado: 04 Fev 2005 01:07
por matrix
pessaoal,

Uso Clipper 5.2 c/ NTX, estou criando um arquivo temporario na emissão de pedidos, separando os produtos daquele respectivo pedido.......entum quando deleto um registro do pedido, faço a seguinte busca (nPedido+nSeqPro), e como no arquivo temporario tem poucos itens é marcado como deletado, mas no arquivo fixo, que deve ter cerca de 15.000 registros, nao marca, entaum quando entro no pedido, lá está ele novamente..........

O que me dizem"???? é problema com os indices???

Enviado: 04 Fev 2005 09:58
por Cida
Bom dia Matrix

Deixa eu ver se entendi seu problema:

Vc tem 2 arquivos um que é temporário e outro fixo, o temporário você marca como deletado e o fixo não marca mesmo você fazendo a busca (nPedido+nSeqPro) ? É isso?

Se for isso vc deve verificar como criou o indice para essa busca:

Como nPedido e nSeqPro são numéricos o indice criado para os campos deve estar da seguinte forma:

str(nPedido,tamanho do campo, 0) + str(nSeqPro, tamanho do campo, 0)

Exemplo:

se o nPedido for numérico de 7 = str(nPedido,7,0) e nSeqPro numérico de 3 = str(nSeqPro,3,0)

Isso você vai fazer quando for criar seus indices.

Depois quando for efetuar a busca não se esqueça de tratar suas variáveis.

Ah verifique também se vc não marcou o registro como deletado antes de fazer a busca no arquivo fixo.

Esse tipo de problema aconteceu comigo., quando indexamos campos numericos sem transformá-los para string se perde na busca, procure sempre criar indices para campos numéricos da forma com que sugeri acima, ok?

Espero ter ajudado.

Um abraço

Enviado: 04 Fev 2005 10:16
por matrix
só tem mais um porem, se o DBF estiver com poucos registros o processo funciona, mas com o decorrer do tempo agora nao marca mais no arquivo fixo, mas no temp como sempre é pequeno ele é marcado.......................

Enviado: 04 Fev 2005 11:46
por matrix
valeu pessoal, tirei uns 300 kg, das costas.................transformei os indices de numerico usando strzero, e solucionado.

Abraços.