Ao executar um DbSeek() sempre verifique se localizou o registro, exemplo:

// DbSeekSample.prw

If SB1->(DbSeek(XFilial("SB1") + cVar))

       // Achei o registro, portanto faço o que for necessário.

Else

       // Gero retorno negativo da execução do processamento.

Endif

 

Mesmo que seja óbvia a existência do registro, faça o teste para evitar qualquer interrupção indesejada do programa ou quebra de integridade dos dados.

A não verificação do posicionamento, em grande parte dos casos, não gera erro ou nenhum problema aparente. A principal consequência da não verificação é o uso de informação errada. Por exemplo, supondo que a rotina esteja calculando um contador qualquer, se não for confirmado que o DbSeek encontrou o registro correto, o cálculo será feito do mesmo modo, porém o resultado do cálculo estará errado, pois utilizou-se de informação errada. Erros de integridade desse tipo são muito difíceis de serem encontrados e normalmente só ocorrem em um determinado cenário e esse cenário normalmente não está na máquina do programador ou analista que está verificando a situação.

 

  • Sem rótulos