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
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

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

Mensagem por Linguagemclipper »

Compilei o letodb no Linux, Debian 12. Ele aparenta executar normal, mas do Windows ele não consegue abrir os DBFs.
O leto conecta, o DBF é encontrado com LETO_FILE() normalmente, mas ao tentar abrí-lo dá erro.
Error LETO/1012 Erro de abertura: UNIDADE
Os DBFs estão na pasta /databases/controli, ou seja, do root, mas já tentei do /home/anderson/databases/controli e deu no mesmo, conectou, achou, mas não abriu.
As pastas estão com CHMOD 0777 e os DBFs estão com CHMOD 0666.
No manual tem algo falando sobre o SAMBA "mount -t cifs -o guest,file_mode=0666,dir_mode=0777 //localhost/share_name /mnt/samba" então presumí que as permissões de arquivo seriam essas.

O sistema mostra que o usuário é root no grupo root das pastas e arquivos.
Renomeei todos os arquivos para minúsculas e usei o LOWER_PATH=1.

Já tentei o SERVER_USER=anderson, SERVER_UID=1000 e SERVER_GID=1000 na pasta /home/anderson/databases/controli como também SERVER_USER=root, SERVER_UID=0 e SERVER_GID=0 na pasta /databases/controli, mas não fez efeito, então desativei.

A pasta /tmp e a pasta /tmp/backup existem.

A regra de entrada no "Firewall do Windows com Segurança Avançada" foi criada liberando a porta 2812. Entretanto, ao observar a conexão no Linux ele usa 2812 lá, mas o "peer" mostra a conexão com outras portas aleatórias na casa dos 40, 50 ou 60 mil, exemplo:

Código: Selecionar todos

root@Debian:/usr/bin# ss -ptab
State      Recv-Q     Send-Q         Local Address:Port          Peer Address:Port     Process                                                                                
LISTEN     0          128                127.0.0.1:ipp                0.0.0.0:*         users:(("cupsd",pid=553,fd=7))                                                        
LISTEN     0          10                   0.0.0.0:2812               0.0.0.0:*         users:(("letodb",pid=2252,fd=3))                                                      
LISTEN     0          10                   0.0.0.0:2813               0.0.0.0:*         users:(("letodb",pid=2252,fd=4))                                                      
ESTAB      0          0               10.100.0.151:2812           10.100.0.77:64377     users:(("letodb",pid=2252,fd=7)) timer:(keepalive,73min,0)                            
ESTAB      0          0               10.100.0.151:2813           10.100.0.77:64378     users:(("letodb",pid=2252,fd=8)) timer:(keepalive,73min,0)                            
ESTAB      0          0               10.100.0.151:2812           10.100.0.77:65203     users:(("letodb",pid=2252,fd=9)) timer:(keepalive,119min,0)                           
LISTEN     0          511                        *:38903                    *:*         users:(("apache2",pid=1589,fd=4),("apache2",pid=1588,fd=4),("apache2",pid=1587,fd=4)) 
LISTEN     0          128                    [::1]:ipp                   [::]:*         users:(("cupsd",pid=553,fd=6))                                     
O IP 10.100.0.151 é do servidor Linux onde estão o letodb e os DBFs, enquanto que, o IP 10.100.0.77 é da máquina Windows onde está o meu programa.
Na máquia Windows eu consigo pingar 10.100.0.151 normal.
Também já desativei o Firewall para testar, mas deu na mesma coisa.
Meu letodb.ini está assim:

Código: Selecionar todos

Server   = 10.100.0.151
;IP      = 127.0.0.1
Port     = 2812
DataPath = /databases/controli
LogPath  = /tmp
DataBase = /
Mask     = *.dbf,*.fpt,*.cdx
Backup   = /tmp/backup
ArcCmd   = tar -cvzf /tmp/backup/leto.tar.gz /tmp/backup/*

;Server_User = root
;Server_UID  = 0
;Server_GID  = 0

Pass_for_Login  = 0
Pass_for_Manage = 0
Pass_for_Data   = 0

Share_Tables   = 1
No_Save_WA     = 1
Lower_Path     = 1

Default_Driver = CDX
Memo_Type      = FPT

EnableFileFunc = 1
EnableAnyExt   = 1

Lock_Scheme    = 2
Debug          = 0
Allow_UDF      = 1
Cache_Records  = 21
Optimize       = 1
Crypt_Traffic  = 0
Lock           = 1
Seconds        = 30
Wait           = 1

;SMB_SERVER = 1
;SMB_PATH = /mnt/samba
;Pass_File = leto_users
;Max_Vars_Number = 1000
;Max_Var_Size = 67108864
;Tables_Max  = 999
;Users_Max = 99
;AutOrder = 0
;ForceOpt = 0
;TimeOut = 360
;Zombie_Check = 0
;BC_Services = letodb;
;BC_Interface = eth2
;BC_Port = 2812
O SERVER tem que ser o IP do servidor Linux, se eu colocar outra coisa nem conecta, tipo 127.0.0.1 não conecta.
O IP deixei comentado porque quero que qualquer computador da rede possa se conectar, mas já coloquei igual ao IP fo servidor e deu no mesmo.
Não sei mais o que fazer.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
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á!
Testa isso no próprio DEBIAN.
Não precisa ser no windows.
Faz ai seu "prg" de teste.
Function main
leto_connect...
use ...
Tudo isso no prórpio DEBIAN.
Se rodar vai rodar no windows.
Pelo erro deve ser permissão.
Mude o dono da pasta e subpasta dos arquivos dbf e fpt para o mesmo dono do LetoDB(daemon)

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

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

Mensagem por Linguagemclipper »

Não entendí essa última parte de mudar o dono do Letodb (daemon). Como assim?
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
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á!
Provavelmente seu Debian tem dois usuários você e root.
https://www.certificacaolinux.com.br/co ... nux-chown/
As pastas é a mesma coisa e os arquivos também. Mude o dono caso não tenha acesso com o seu usuário.
Se usou seu usuário para criar o letodb e o root para criar as pastas, o letodb não terá acesso, pois foi vc que criou ele(letodb) e não o root.
Acredito que já deu para entender. 90% dos erros é o usuário Windows entender essa parte do OS UNIX.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

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

Mensagem por Linguagemclipper »

Oi, Itamar.
Exato, 2 usuários. Então, já fiz isso. Era tudo com root, depois fiz o chown para anderson, mas também não deu certo.
Fiz também as variáveis do letodb.ini para root:

Código: Selecionar todos

Server_User = root
Server_UID  = 0
Server_GID  = 0
E para anderson:

Código: Selecionar todos

Server_User = anderson
Server_UID  = 1000
Server_GID  = 1000
Mas, também não deu certo.
Inclusive deixei em pastas separadas, em /databases/controli está como root, enquanto que, em /home/anderson/databases/controli está como anderson para não haver confusão.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
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. »

Ola!
O que não deu certo ?
Seu programa ai no LINUX ? Não roda ? Não encontra o LetoDB ? Igual vc faz no windows ?
Não use a rede para teste, use localhost no seu aplicativo de teste.
No seu aplicativo teste vc coloca LOCALHOST ai no debian.
Use o utilitário console do letodb ... tá na pasta utils para ver se o servidor está ok.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
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á!
Inclusive deixei em pastas separadas, em /databases/controli está como root, enquanto que, em /home/anderson/databases/controli está como anderson para não haver confusão.
Eu sei mais ou menos o que vc está fazendo...
Mas vc não informa nada... Eu tive que adivinhar que tem duas pasta... a conversa com vc é sempre dessa forma.
Mas é isso, root tem as pastas do root e anderson tem as pastas do anderson. Anderson não vê o que o root faz.
o letodb do anderson não vê nem acessa a pasta do letodb e pastas que o root criou.
Deve ter ai 2 letodb rodando na memoria brigando... na porta 2812 e 2813... pq vi 4 letodb rodando...
Se o root rodar o letodb do anderson mesmo assim não vai ver a pasta do root /databases/controli

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
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á!
Use o comando kill -9 PID
>kill -9 1020
1020 é PID do processo (process ID=PID). Para não precisar reiniciar seu OS.
Mata os processos do LetoDb e reiniciar ./leto.sh com as permissões e configurações corretas.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

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

Mensagem por Linguagemclipper »

Rapaz, eu testei tanto com o usuário root quanto com o usuário anderson dando stop no letodb e reiniciando com letodb config letodb e verificando com ss -ptan se está rodando, inclusive já testei reiniciando o servidor. Essa suposta bagunça aí foi você que imaginou. Se não entrei em detalhes é porque testei tanto uma como outra pasta.
Tudo o que eu instalei foi com o usuário root, testei com o usuário anderson, os DBFs dele foram mudados com CHOWN para anderson, tudo correto, mas não abre.

Enfim, como você sugeriu, compilei um teste no Debian, mas deu o mesmo erro:
Imagem
Está mostrando lockscheme 3, mas no meu letodb.ini coloquei 2, não sei o que está acontecendo.

Meu teste, letotest.prg:

Código: Selecionar todos

*****************************************************   
*** DEFINIR TIPO DE BANCO DE DADOS PADRÃO: DBFCDX ***
*****************************************************
ANNOUNCE RDDSYS
REQUEST DBFCDX
ANNOUNCE FPTCDX
REQUEST DBFFPT
Request ordfor
**********************************
*** CODEPAGE E CHARSET
**********************************
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850 // PARA INDEXAR CAMPOS ACENTUADOS
**********************************
*** SERVIDOR DE BANCO DE DADOS ***
**********************************

        // servidor LETODBF
        #include "rddleto.ch"
        #include "dbinfo.ch"
        REQUEST LETO

Function Main()
***************************************************
***************************************************
PUBLIC nDBFPORT:=2812, nHotbuf := 100, nTimeOut := 6000

cMAINTITLE := "TESTE DO SERVIDOR LETODBF"
xOPERADOR  := ""

***************************************************
*** CONFIGURAÇÃO DO BANCO DE DADOS PADRÃO *********
***************************************************
RDDSETDEFAULT("DBFCDX")
RDDREGISTER( "DBFCDX", 1 ) // RDT_FULL
SET AUTOPEN OFF
SET OPTIMIZE ON
SET HARDCOMMIT OFF // É MELHOR DAR UM DBCOMMIT() NO FINAL DE CADA TAREFA
SET DELETED ON
RDDSETDEFAULT( "LETO" ) 
***************************************************
*** IDIOMA PORTUGUÊS, CHARSET 850 *****************
***************************************************
HB_LangSelect("PT")
HB_SetCodePage("PT850")  // PARA INDEXAR CAMPOS ACENTUADOS
SET(_SET_LANGUAGE, "PT") // XHB 100
********************************
* CONFIGURAÇÃO DO AMBIENTE: SETs
********************************
SET(_SET_MESSAGE, 23)     // _SET_MESSAGE 36
SET(_SET_MCENTER, .F.)    // _SET_MCENTER 37
Set(_SET_VIDEOMODE ,159)  // mouse no xharbour 40
SETMODE(43,80)
SETMOUSE(.t.)
SETBLINK(.T.)   // PISCA A COR SE TIVER * NA COR DE FUNDO
SET SCOREBOARD OFF
SET DATE BRITISH
SET EPOCH TO YEAR(DATE())-50
SET MESSAGE TO 24
SET TIME FORMAT TO "hh:mm"
SET CONFIRM ON
SET WRAP ON
SETCANCEL(.F.)         // IMPEDE ALT+C OU CONTROL+BREAK
WMODE(.F.,.F.,.F.,.F.) // Determines on which side windows are allowed to be moved off>
aCOLOR := {"N+/N", "W/N", "W+/N"}
SET CURSOR OFF
//SET(39,159)   // _SET_EVENTMASK, MOUSE NOS GETs 39
********************************
CLS

LETO_IP := "//10.100.0.151:2812/"

       ** LETODBF
        **********
        cDBFUSER := ""
        cDBFPASS := ""
        // FAZ CONEXÃO
	IF leto_Connect( xPath, cDBFUSER, cDBFPASS, nTimeOut, nHotBuf) == -1
		ALERT("Nenhum LetoDBF Server encontrado - Erro: " + leto_Connect_Err( .T. ) )
		QUIT
        ELSE
                // LetoDBf Server 3.00
                // ===================
                ? LETO_GetServerVersion(), " at address: ", Leto_getLocalIP( .T. )
 		LETO_DBDRIVER( "DBFCDX", "FPT", 512 )
		
		// alternative: RddInfo( RDDI_MEMOTYPE, DB_MEMO_SMT ); RddInfo( RDDI_MEMOBLOCKSIZE, 512 )
		? "DBF DATABASE DRIVER:", LETO_DBDRIVER()[ 1 ], "MEMOTYPE:", LETO_DBDRIVER()[ 2 ]
		? "RDD:", ALLTRIM(RddSetDefault()),;
				", DBF EXTENSION:", ALLTRIM(hb_rddInfo( RDDI_TABLEEXT )),;
				", INDEX EXTENSION:" + INDEXEXT()
		? "Memo extension:", ALLTRIM( hb_rddInfo( RDDI_MEMOEXT )),;
				"blocksize:", hb_rddInfo( RDDI_MEMOBLOCKSIZE )
		
		? "Lockscheme:", ALLTRIM(STR(hb_rddInfo( RDDI_LOCKSCHEME )))
				
		LETO_TOGGLEZIP( 1 )
		
		? "NETWORK TRAFFIC COMPRESSION:", Iif( LETO_TOGGLEZIP() > 0, "ON", "OFF" )

                // DBINFO ???
                /*
                ? "Lockscheme    :", hb_rddInfo( RDDI_LOCKSCHEME ),;
                        IiF( RddSetDefault() == "LETO", Leto_UDF( "DbInfo", DBI_LOCKSC>
                ? "Memo extension:", Padl( hb_rddInfo( RDDI_MEMOEXT ), 10 ), Padl( DbI>
                ? "     blocksize:", hb_rddInfo( RDDI_MEMOBLOCKSIZE ),;
                        IiF( RddSetDefault() == "LETO", Leto_UDF( "DbInfo", DBI_MEMOBL>
                */
        ENDIF

IF LETO_FILE("CADASTRO.DBF")
        ?
        ? "Oi cadastro.dbf, achei voce!"
ENDIF

USE CADASTRO ALIAS CAD SHARED New
SET INDEX TO ("CADASTRO"+INDEXEXT())

CAD->(DBGOTO(5))
? CAD->RAZAO
? CAD->FANTASIA
? CAD->CNPJ
Meu letotest.hbp:

Código: Selecionar todos

-oteste

letotest.prg
-lrddleto

-i/core-master/include
-L/core-master/lib/linux/gcc

hbct.hbc
hbxpp.hbc
xhb.hbc
Meu letodb.ini:

Código: Selecionar todos

Server   = 10.100.0.151
IP       = 10.100.0.151
Port     = 2812
DataPath = /databases/controli
LogPath  = /tmp
DataBase = /
Mask     = *.dbf,*.fpt,*.cdx
Backup   = /tmp/backup
ArcCmd   = tar -cvzf /tmp/backup/leto.tar.gz /tmp/backup/*

;Server_User = root
;Server_UID  = 0
;Server_GID  = 0

Pass_for_Login  = 0
Pass_for_Manage = 0
Pass_for_Data   = 0

Share_Tables   = 1
No_Save_WA     = 1
Lower_Path     = 1
Lock_Scheme    = 2

Default_Driver = CDX
;Memo_Type     = FPT

EnableFileFunc = 1
EnableAnyExt   = 1

Debug          = 0
Allow_UDF      = 1
Cache_Records  = 21
Optimize       = 1
Crypt_Traffic  = 0
Lock           = 1
Seconds        = 30
Wait           = 1

;SMB_SERVER = 1
;SMB_PATH = /mnt/samba
;Pass_File = leto_users
;Max_Vars_Number = 1000
;Max_Var_Size = 67108864
;Tables_Max  = 999
;Users_Max = 99
;AutOrder = 0
;ForceOpt = 0
;TimeOut = 360
;Zombie_Check = 0
;BC_Services = letodb;
;BC_Interface = eth2
;BC_Port = 2812
A pasta /databases:

Código: Selecionar todos

root@Debian:/# dir databases/ -l
total 4
drwxrwxrwx 6 root root 4096 Jul 13 19:22 controli
root@Debian:/# 
Na pasta /databases/controli:

Código: Selecionar todos

root@Debian:/databases# dir -l
total 4
drwxrwxrwx 6 root root 4096 Jul 13 19:22 controli
root@Debian:/databases# 
Os arquivos:

Código: Selecionar todos

root@Debian:/databases/controli# dir -l
total 12584
-rw-rw-rw- 1 root root    3072 Jul 12 14:05 acesso.cdx
-rw-rw-rw- 1 root root     291 Jul 12 14:05 acesso.dbf
-rw-rw-rw- 1 root root     483 Jul 12 14:05 aditivos.dbf
-rw-rw-rw- 1 root root     413 Jul 12 14:05 almox.dbf
-rw-rw-rw- 1 root root  151040 Jul 12 14:05 cadastro.cdx
-rw-rw-rw- 1 root root 1808460 Jul 12 14:05 cadastro.dbf
-rw-rw-rw- 1 root root    1024 Jul 12 14:05 cadastro.fpt
Conexões:

Código: Selecionar todos

root@Debian:/databases/controli# ss -ptan
State      Recv-Q     Send-Q         Local Address:Port          Peer Address:Port     Process                                                                                
LISTEN     0          10                   0.0.0.0:2812               0.0.0.0:*         users:(("letodb",pid=2204,fd=3))                                                      
LISTEN     0          10                   0.0.0.0:2813               0.0.0.0:*         users:(("letodb",pid=2204,fd=4))                                                      
LISTEN     0          128                127.0.0.1:631                0.0.0.0:*         users:(("cupsd",pid=552,fd=7))                                                        
LISTEN     0          511                        *:45987                    *:*         users:(("apache2",pid=2097,fd=4),("apache2",pid=2096,fd=4),("apache2",pid=2095,fd=4)) 
LISTEN     0          128                    [::1]:631                   [::]:*         users:(("cupsd",pid=552,fd=6))               
Se você olhar o readme.txt vai saber que é normal ter 2 instâncias. Mostrar 2812 e 2813 é normal, serve para verificar conexões zumbis uma testando a outra, se entendí bem.
Tentei compilar o console.hbp, mas dá erro:

Código: Selecionar todos

root@Debian:/home/anderson/LetoDBf/utils/manager# hbmk2 console.hbp
/usr/bin/ld: cannot find -lgtxwc: No such file or directory
/usr/bin/ld: cannot find -lX11: No such file or directory
collect2: error: ld returned 1 exit status
hbmk2[console]: Error: Running linker. 1
gcc '/tmp/hbmk_kbwox0.dir/console.o' '/tmp/hbmk_kbwox0.dir/common.o' '/tmp/hbmk_kbwox0.dir/hbmk_r4n7dr.o'   -Wl,--start-group -lgtxwc -lhbct -lrddleto -lhbextern -lhbdebug -lhbvmmt -lhbrtl -lhblang -lhbcpage -lgtcgi -lgtpca -lgtstd -lgttrm -lhbrdd -lhbuddall -lhbusrrdd -lrddntx -lrddcdx -lrddnsx -lrddfpt -lhbrdd -lhbhsx -lhbsix -lhbmacro -lhbcplr -lhbpp -lhbcommon -lm -lpthread -ldl -lrt -lX11 -lhbpcre -lhbzlib   -Wl,--end-group -s -o../../bin/console -L/usr/local/lib/harbour -L../../lib -L/usr/X11R6/lib
root@Debian:/home/anderson/LetoDBf/utils/manager# 
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
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á!
Sei não...Muito comando pra pouco teste.
Em outra tela sua tem 4 letodb na memória...
https://pctoledo.org/forum/viewto ... 16#p161096

Colocar "use cadastro" e não "use CADASTRO"
Use minúsculas no seu fonte e coloque isso no inicio depois do main

Código: Selecionar todos

FUNCTION MAIN
SET FILECASE LOWER
SET DIRCASE LOWER
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

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

Mensagem por Linguagemclipper »

Nada a ver!
O arquivo existe, viu o teste não?
O que tinha 4 era porque a máquina do Windows estava conectada. 2 era listen e 2 era estab (estabelecido conexão)

E tem mais: Se tiver LOWER_PATH=1 e você colocar "use cadastro" ele não acha o arquivo! Já fiz muito mais testes do que você imagina!
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

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

Mensagem por Linguagemclipper »

Por algum motivo o letodb não está abrindo o letodb.ini que estou editando porque no letodbf.log aparece o DATAPATH=/mnt/samba e não sei de onde ele está tirando isso.
Tinha um fstab dessa pasta, apaguei. Reiniciei.
Deixei tanto o letodb.ini da pasta /home/anderson/LetoDBf/bin quanto da pasta /usr/bin/letodb.ini iguais. Chamei o servidor, mesmo erro, parei o servidor, olhei o log e continua dizendo que o datapath=/mnt/smb.
Eu tinha instalado esse samba que não precisa etc. Vou remover esse Linux e recomeçar de novo, é o jeito.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

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

Mensagem por Linguagemclipper »

Reinstalei o Linux, refiz tudo, mas deu erro 1012.
Conexões:
root@debian:/home/anderson/letodbf/bin# ss -ptan
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:631 0.0.0.0:* users:(("cupsd",pid=540,fd=7))
LISTEN 0 10 0.0.0.0:2813 0.0.0.0:* users:(("letodb",pid=2511,fd=4))
LISTEN 0 10 0.0.0.0:2812 0.0.0.0:* users:(("letodb",pid=2511,fd=3))
LISTEN 0 128 [::1]:631 [::]:* users:(("cupsd",pid=540,fd=6))
root@debian:/home/anderson/letodbf/bin#
Arquivo de log:
07.18.2023 00:15:27 LetoDBf Server at port 2812 try to start ...
07.18.2023 00:15:27 UDF file: /home/anderson/letodbf/bin/letoudf.hrb have been loaded.
07.18.2023 00:15:27 INFO: LetoDBf Server 3.00 (20230717), will run at port :2812 ( internal also used :2813 )
07.18.2023 00:15:27 INFO: DataPath=/databases, ShareTables=1, NoSaveWA=1, Max Tables=999
07.18.2023 00:15:27 INFO: LoginPassword=0, CacheRecords=21, LockExtended=2, Max Users=99
07.18.2023 00:15:27 INFO: Encrypted LZ4 traffic=N
07.18.2023 00:15:27 DEBUG second socket: 4 for errors established
07.18.2023 00:15:27 DEBUG thread3() with pipe handle: 5 started ..
07.18.2023 00:15:52 INFO: connected 10.100.0.77:53055 controlidb.exe CP: EN DF: mm/dd/yy conn-ID 0
07.18.2023 00:15:52 DEBUG leto_Intro() AUTO -open 1 -order 0 DEFAULT '/databases' PATH ''
07.18.2023 00:15:59 DEBUG thread2() socket error ETIMEOUT (2) - maybe closed ..
07.18.2023 00:15:59 INFO: disconnect 10.100.0.77:53055 controlidb.exe users=(0 : 1 : 1), tables=(0 : 0)
Não estou entendendo porque o Windows conectou na porta 53055, não teria que ser a mesma porta 2812? O pior é que toda vez é uma porta aleatória entre 40000 e 69999.
Está difícil...
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

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

Mensagem por Linguagemclipper »

Fiz um teste besta para abrir o dbf normal sem letodbf no Linux:

Código: Selecionar todos

function main()
USE cadastro alias cad shared new
cad->(dbgoto(5))
? cad->razao
? cad->fantasia
? cad->cnpj
Estou na pasta dele:
root@debian:/databases# dir cad*
cadastro.cdx cadastro.dbf cadastro.fpt cad.fpt cadlic.cdx cadlic.dbf
root@debian:/databases#
E ainda deu esse erro:
root@debian:/databases# ./teste
./teste: error while loading shared libraries: libharbour.so.3.2: cannot open shared object file: No such file or directory
root@debian:/databases#
Copiei as libs de harbour/lib/linux/gcc/libharbour.so* para /usr/lib
...e:
root@debian:/databases# ./teste

Error DBFNTX/1012 Corruption detected: cadastro.dbf
Called from DBUSEAREA(0)
Called from MAIN(2)
root@debian:/databases#
Esses DBFs foram criados no Windows e copiados para o servidor Linux, será por isso?
Mas, aí como é que a gente migra de uma plataforma para outra?
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
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. »

Ola!
Padrão é NTX seu DBF está CDX.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder