Oi Marcos,
a situação de pesquisa, inserção e gravação de novo registro é rápida.
Por isso a proposta do Stanis funciona.
Mas como todas, inclusive a que tinha postado anteriormente não é 100% e/ou compromete o desempenho em rede com a necessidade de abertura do arquivo de dados no modo exclusivo.
O dbf não tem recurso de campo "unique".
E é isso que você quer não é?
Ou seja, que o campo (coluna) pedido do arquivo pedido tenha números sequenciais sem repetição.
Então, analisando mais detidamente o seu problema, acho que a melhor técnica é utilizar um arquivo texto em separado, que grava o número do pedido.
Quando utilizava dbf eu usava uma função que fazia isso, obtida no site caclipperwebsite.
Deu até saudade...
Fui lá e peguei ela prá você.
É muito simples o uso...
Código: Selecionar todos
FUNCTION NOVOCOD(ARQUIVO)
IF !FILE(ARQUIVO)
__nHandle := FCREATE(ARQUIVO, 0)
__IF FERROR() # 0
____ALERT("Erro"+ALLTRIM(STR( FERROR() ))+": Arquivo não pode ser criado!!!" )
____QUIT
__ELSE
____FWRITE(nHandle, "000000")
____FCLOSE(nHandle)
__ENDIF
ENDIF
nHandle := FOPEN(ARQUIVO, 18)
IF FERROR() != 0
__ALERT("Erro"+ALLTRIM(STR( FERROR() ))+": Arquivo não pode ser aberto!!" )
__QUIT
ENDIF
nCOD := VAL( FREADSTR(nHANDLE, 6) )
nCOD++
FSEEK(nHANDLE, 0)
FWRITE(nHANDLE, STRZERO(nCOD,6))
FCLOSE(nHANDLE)
RETURN (nCOD)
Espero ter ajudado.
MarceloG
PS: tinha feito confusão mesmo.