Até hoje não acionou nenhuma vez os File() alternativos.
Parece que realmente o problema realmente era limite, e a alteração do registro resolveu.
A rotina que deixei no final foi esta, porque usuário pode não avisar.
Sempre que tem log de erro, o sistema já me envia por email.
Mas até hoje mais nenhuma ocorrência.
O erro que mencionei foi só um dos erros.
Faço amarração no sistema pelo número de pedido, no financeiro e estoque.
Tem alguns pedidos que sumiram. O sistema checa fácil, porque tem lá os ítens de pedido, estoque e financeiro, mas não o cabeçalho de pedido. E olhando os backups, o problema começou junto com os erros.
Incrível, desde o W98 o Windows se aperfeiçoou muito, as máquinas ganharam muito mais memória, e os limites ficaram menores.
Código: Selecionar todos
FUNCTION JPA_File( cFile )
LOCAL lAchou := .t., cFile2
cFile2 := cFile
IF .NOT. ":" $ cFile2
cFile2 := HB_CurDrive() + ":" + cFile2
ENDIF
DO CASE
CASE File( cFile )
CASE File( cFile2 )
WriteErrorLog( "Funcionou File(Drive)", .t. )
MsgExclamation( "Avise a JPA que File( Drive ) funcionou e pra retirar esta mensagem" )
CASE hb_FileExists( cFile )
WriteErrorLog( "Funcionou hb_FileExists(file)", .t. )
MsgExclamation( "Avise a JPA hb_FileExists() funcionou e pra retirar esta mensagem" )
CASE hb_FileExists( cFile2 )
WriteErrorLog( "Funcionou hb_FileExists(Drive)", .t. )
MsgExclamation( "Avise a JPA que hb_FileExists( Drive ) funcionou e pra retirar esta mensagem" )
OTHERWISE
lAchou := .f.
ENDCASE
RETURN lAchou