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???
marca para deleção (dbdelete())
Moderador: Moderadores
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
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

