LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem 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 !
Anexos
linux permissao.jpg
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem por deividdjs »

fiz um teste assim :

funciona perfeitamente .. apagou os dois arquivos ..

Código: Selecionar todos

leto_FErase("cli.cdx")
leto_FErase("for.cdx")
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 !!
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem 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
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem 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 ...
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem 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!
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem 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
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem por JoséQuintas »

Nessas horas, compilar usando -w3 -es2 teria feito toda a diferença.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
deividdjs
Usuário Nível 3
Usuário Nível 3
Mensagens: 377
Registrado em: 19 Set 2006 09:39
Localização: Foz do Iguaçu / Pr

LetoDBf rodando no Linux, conecta, acha, mas não abre o DBF.

Mensagem 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
Windows 11 + Harbour 3.2 + MINGW64 gcc 14.1.0 + Visual Lib + GTWVG + LETODBF WINDOWNS/LINUX
Responder