Assimões, obrigado pela resposta.
A maneira como eu abro os arquivos é praticamente igual a sua, sempre tomando os devidos cuidados.
Mas o problema é outro. Já testei se as duas aplicações estão abrindo o mesmo arquivo, e estão. Pois os executáveis e o arquivo ini que montei, são idênticos para ambos.
A rotina que postei de início assegura que dois ou mais pc´s não gerem pedidos com o mesmo número, e com dbfcdx sempre atendeu corretamente.
Porém com o uso do letodb, ela não funciona a contento. É como se cada estação tivesse o seu dbf único.
Na prática está acontecendo o seguinte:
o dbf guarda num campo o número do último pedido gerado, por exemplo 001234;
abro o executável nos dois pc´s;
se eu gerar um pedido novo no pc1, ele obedece a ordem, ou seja, gerando o pedido 001235;
se eu for no pc2, ele gera novo pedido com o número 001235 !!! como se o pc1 não tivesse commitado o dbf
e assim sucessivamente
Inclusive se eu for gerando pedidos no pc1, digamos até 002000, e o no pc2 o último gerado foi o 001235, se tentar gerar outro neste último pc, é gerado o 001236
É como se a variável que guarda este número nos terminais, não fosse atualizada com base no que existe no dbf.
Seguem os arquivos ini que ficam nas estações e servidor respectivamente.
[/code]
Código: Selecionar todos
[SERVIDOR]
Servidor=//192.168.0.10:2812/
Dados=\Alamino\
Drive=C:
RDD=LETO
Código: Selecionar todos
Port = 2812
DataPath = \c:\alamino
Logfile = "letodb.log"
Default_Driver = CDX
EnableFileFunc = 1
Crypt_Traffic = 1
Função de abertura
[code]Function usa(arquivo,sh,ro)
If RddLeto
If Leto_File(srv+arquivo+'.dbf')
DbUseArea(.t.,"LETO",srv+arquivo+'.dbf',,sh,ro,'PTISO')
Else
MsgStop('Arquivo Não Foi Localizado: '+arquivo+'.dbf')
return .f.
EndIf
Else
DbUseArea(.t.,'DBFCDX',arquivo,,sh,ro,'PTISO')
if neterr()
return .f.
endif
EndIf
return .t.
Continuo dependendo da ajuda dos colegas.