Página 3 de 3
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 30 Mai 2024 18:05
por Itamar M. Lins Jr.
Olá!
Teste se tá pegando.
Código: Selecionar todos
AEval( Leto_Directory( "/controle_/*.cdx" ), {| file | alert( file[ F_NAME ] ) } )
Ai se pegar o arquivo(alert()) deve ser permissão. Teste ai as permissões.
Saudações,
Itamar M. Lins Jr.
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 30 Mai 2024 19:26
por JoséQuintas
Se considerar o funcionamento do harbour, Directory() retorna apenas nomes, e não path.
Código: Selecionar todos
cPath := "pasta/"
aList := Directory( cPath + "*.cdx" )
FOR EACH aFile IN aList
fErase( cPath + aFile[ F_NAME ] )
NEXT
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 31 Mai 2024 09:13
por deividdjs
bom dia amigos ..
nenhuma das soluções apresentadas tive êxito ...
mudei as pemissões e nada tbm .. coloquei /home/controle_ tbm e ele não encontra o arquivo ... não mostra no alert()
fiz conforme o zé mencionou tbm .. nada!!
bem raro ... no windows funciona perfeitamente somente com a função leto_Ferase(*.cdx) .. deveria funcionar no linux ... até porque o leto deve fazer as conversões quando está em servidor linux ... não é ??
vou continuar na batalha aqui pra ver o q pode ser ...
Saludos !
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 31 Mai 2024 10:15
por JoséQuintas
No linux há dois pontos a considerar:
Permissão no arquivo significa só pro arquivo, leitura e gravação.
Permissão na pasta, aqui entra criar/excluir arquivo
Eu até esqueci uma coisa:
No caso do leto, ele é quem usa o linux, e isso não tem a ver com permissões do usuário conectando.
Veja se tem algo na documentação do letto.
Talvez seja arquivo sob controle dele.
No harbour tem comando próprio pra excluir índices, talvez no leto também.
Ainda mais se é do tipo autoopen, onde abrir o arquivo sem ele existir pode gerar erro.
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 31 Mai 2024 10:52
por deividdjs
fiz um teste assim :
funciona perfeitamente .. apagou os dois arquivos ..
agora desta maneira .. ele nem sequer encontra o arquivo .. parece q ele nem entra no for .. porque nem me mostra o msgbox1()
Código: Selecionar todos
cPath := "controle_/"
aList := Leto_Directory( cPath + "*.cdx" )
FOR EACH aFile IN aList
msgbox1( cPath + aFile[ F_NAME ] )
fErase( cPath + aFile[ F_NAME ] )
NEXT
Estranho !!
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 31 Mai 2024 12:01
por deividdjs
Fiz assim e funcionou heheheh
Código: Selecionar todos
aCDXFile := leto_Directory("*.cdx")
For nCont = 1 to Len(aCDXFile)
leto_FErase(aCDXFile[nCont,1])
Next
Valeu amigos pela ajuda !! solucionado .. rs
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 31 Mai 2024 12:45
por JoséQuintas
Provavelmente porque do outro jeito estava usando o path do sistema operacional, e não o path referência do leto.
Na configuração do leto você indicou qual a pasta raiz, qualquer coisa é relacionada àquele path.
Neste último, usou o path atual, que pro leto é esse dos arquivos.
Aceitar qualquer path seria falha de segurança.
No hb_NetIo é a mesma coisa.
Mas não tem nada a ver com leto, hb_NetIo não tem nenhuma otimização.
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 31 Mai 2024 14:08
por Itamar M. Lins Jr.
Olá!
Atenção pq vc sabe que o LetoDb vê apartir de uma pasta e todas que estão dentro.
Avisei anteriormente.
Não tem subpastas e colocou. Não precisava, por isso não funcionou.
Aeval() é o mesmo "FOR NEXT" é a mesma coisa.
Saudações,
Itamar M. Lins Jr.
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 31 Mai 2024 14:46
por deividdjs
Aeval() é o mesmo "FOR NEXT" é a mesma coisa.
pois é Itamar .. vai entender ..
eu tentei compilar e executar agora novamente ..
e assim não funciona ....
Código: Selecionar todos
AEval( Leto_Directory( "*.cdx" ), {| file | leto_FErase( file[ F_NAME ] ) } )
e com o for/next sim ...
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 31 Mai 2024 16:01
por Itamar M. Lins Jr.
Olá!
Aqui está ok.
Testei no Linux.
Código: Selecionar todos
/* login error conditions */
#define LETO_ERR_CONNECT 1
#define LETO_ERR_LOGIN 2
#define LETO_ERR_ACCESS 3
#define LETO_ERR_RECV 4
#define LETO_ERR_SEND 5
#define LETO_ERR_MANY_CONN 6
#define LETO_ERR_SOCKET 7
#define LETO_ERR_PROTO 8
#define LETO_ERR_LOCKED 9
#define LETO_ERR_RESTORE 10
#include "directry.ch"
REQUEST DBFCDX, DBFFPT, DBFDBT, LETO
functio main
nConect := leto_Connect( "//localhost:2812/" )
IF nConect == -1
nRes := leto_Connect_Err()
IF nRes == LETO_ERR_LOGIN
alert( "Falha ao logar" )
ELSEIF nRes == LETO_ERR_RECV
alert( "Erro ao conectar: " + Str(nConect) )
ELSEIF nRes == LETO_ERR_SEND
alert( "Erro de envio" )
ELSE
alert( "O servidor não foi encontrado. " )
ENDIF
Return .F.
ENDIF
AEval( leto_Directory( "*.dbf" ), {| file | alert( file[ F_NAME ] ) } )
return nil
Saudações,
Itamar M. Lins Jr.
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 31 Mai 2024 17:47
por deividdjs
#include "directry.ch"
você vai querer chorar e eu tbm quis
estava faltando essa include no meu programa de atualização ... coloquei funcionou na hora !!
brincadeira !!
obrigado Amigo pela força mais uma vez ...
Forte abraço e bom final de semana .. fiquem com Deus!
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 31 Mai 2024 18:32
por Itamar M. Lins Jr.
Olá!
Já desconfiava. rsrsr.
Não entendi pq não deu erro, pedindo a var F_NAME.
Saudações,
Itamar M. Lins Jr.
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 31 Mai 2024 18:58
por deividdjs
Pior q não deu esse erro senão eu tinha descoberto o q era hehhe… compilava tudo certinho só não encontrava nada … raro né?
Coloquei a include funcionou na hora kkkkk
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 02 Jun 2024 19:49
por JoséQuintas
Nessas horas, compilar usando -w3 -es2 teria feito toda a diferença.
LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.
Enviado: 05 Jun 2024 14:03
por deividdjs
buenas tardes Prezados !
mais uma duvida ...
como eu faço para comparar a tamanho e data do meu arquivo controle.exe para uma possível atualização caso seja diferentes da as versões do cliente / servidor
se a versão que esta no servidor for mais nova ela deverá ser copiada para o cliente ..
pra verificar no servidor sei q tem as funçoes, Leto_FileSize(), Leto_FileTime() que retorna uma porrada de coisas .... e comparar com o arquivo local ?? como eu faria ??
Abraço!
DJS