hbnetio

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hbnetio

Mensagem por JoséQuintas »

Só aproveitando, que acabei ajudando alguém com isso.

Quando gera o Harbour, é gerado o hbnetio.exe

hbnetio -? mostra as opções.

NO SERVIDOR é onde vai carregar o hbnetio.exe, indicando usuário/senha/porta/pasta de trabalho, etc. e se vai instalar como serviço, pra carregar automático.

Nas estações, é linqueditar o aplicativo com a lib hbnetio.
use ( "net:cliente" ), vai acessar o arquivo cliente.dbf na pasta indicada no servidor ao carregar hbnetio.exe.
use ( "net:pasta\cliente" ), vai acessar na pasta "pasta", criada dentro da pasta indicada ao carregar hbnetio.exe.
Sem mapeamentos nem compartilhamento nem nada.

Não fica mais rápido do que rede local, mas ninguém tem acesso aos DBFs, a não ser o aplicativo.
E ... nada impede que o servidor seja Windows ou Linux.
E se não me engano, nem mesmo se é remoto.

No meu caso, eu criei PathAndFile( cFileName ) e nessa função, eu acrescento o prefixo "net:" quando se trata de hbnetio, nenhuma outra alteração.
Uso de forma limitada, em acesso remoto, pra que nada esteja visível para os usuários, só pra isso: pra esconder os arquivos
Acaba sendo um uso praticamente local, porque é por terminal service.
Pra esses... o MySQL fez diferença enorme, porque agora o uso de DBF ficou mínimo, mas já usava hbnetio nesse faz tempo, antes do MySQL.

É que não lembrava mais como instalei, e pra ajudar o usuário acabei relembrando.
Instalei faz anos, e nunca mais mexi, e continua em uso ainda.
No começo ultrapassou os gigas em DBF/CDX, depois com MySQL resta uns 4MB talvez ainda em DBF/CDX....
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
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

hbnetio

Mensagem por Mario Mesquita »

Boa tarde a todos.

Quintas, que interessante. Não sabia que esse HbNetIo tinha esses recursos. Proteger as tabelas sempre foi algo que me preocupou.

É complicado implementar isso? Sem muitas alterações em sistemas?

Li sua explicação, mas está bem resumida.

Saudações,
Mario.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hbnetio

Mensagem por JoséQuintas »

É que é só isso mesmo:

No Main(), a conexão com o servidor.
Nos arquivos, o prefixo NET:
Na saída, a desconexão com o servidor.

No servidor, carrega o hbnetio, de preferência como serviço, assim carrega sempre automático.

Tem exemplo nos fontes do Harbour.
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hbnetio

Mensagem por JoséQuintas »

Meu uso:

Código: Selecionar todos

FUNCTION ze_NetIoOpen()

   IF AppDatabase() == DATABASE_HBNETIO
      IF ! NetIo_Connect( "SERVIDOR", 22000, , "senha" )
         MsgExclamation( "Não foi possível conectar com servidor" )
         QUIT
      ENDIF
   ENDIF

   RETURN NIL

FUNCTION ze_NetIoClose()

   IF AppDatabase() == DATABASE_HBNETIO
      BEGIN SEQUENCE WITH __BreakBlock()
         NetIo_Disconnect( "SERVIDOR", 22000 )
      END SEQUENCE
   ENDIF

   RETURN NIL

FUNCTION PathAndFile( cFileName )

   IF AppDatabase() == DATABASE_HBNETIO
      cFileName := "net:" + AppEmpresaApelido() + "/" + cFileName
   ENDIF
   cFileName := Lower( cFileName )

   RETURN cFileName
Na abertura de arquivos:

Código: Selecionar todos

AbreArquivos( "clientes" )
e a rotina acrescenta o prefixo se for hbnetio.

Código: Selecionar todos

FUNCTION AbreArquivos( cFileName )
   RETURN PathAndFile( cFileName )
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
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hbnetio

Mensagem por JoséQuintas »

Com essas mudanças, com ou sem hbnetio tudo funciona.
AppDatabase() é o que retorna se vai usar ou não, que tá configurado num CFG.
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
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

hbnetio

Mensagem por Mario Mesquita »

Oi, Quintas.

Achei uns exemplos nas pastas do HMG. É bem pouca coisa e bem simplificada. Parece simples mesmo, mas se for assim, gostaria de usar, sempre dá mais segurança ao restringir o acesso às tabelas.

Como seria o uso típico? Definir uma pasta, entendi. Mas seria criar uma pasta que eu coloque todos os meus sistemas e subpastas com dados?

Teria que ser como o MySql, uma pasta que se coloque todas as tabelas? Ou dá pra customizar em cada sistema?

Aliás, vi que tem uns #defines em uns exemplos que usam o 127.0.0.1 para o servidor. Isso é default, pode usar assim pra geral?

Eu faço do modo mais básico mesmo, programa e tabelas na mesma pasta, um .bat apontando pra pasta do servidor, tipo "X:\Sistema" ou "\\Servidor\Sistema".

Outro ponto: pra suporte remoto, como se acessa as tabelas? Para manutenção, às vezes pego backup pra testes, essas coisas.

Sds,
Mario.
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

hbnetio

Mensagem por Itamar M. Lins Jr. »

Olá!
Não fica mais rápido do que rede local, mas ninguém tem acesso aos DBFs, a não ser o aplicativo.
Fica mais rápido.
Acaba sendo um uso praticamente local, porque é por terminal service.
Por isso não notou a diferença de velocidade para rede mapeada.

LetoDbf é mais indicado por ser mais completo e tem a comunicação criptografada.
Mudança mínima nos fontes também.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
alisdava
Usuário Nível 1
Usuário Nível 1
Mensagens: 8
Registrado em: 24 Jul 2010 10:40
Localização: MIRANDOPOLIS/SP

hbnetio

Mensagem por alisdava »

Caro

Quintas e colegas do grupo
Ocorre o seguinte , com a ajuda do Quintas esta quase tudo certo para a migração com o hbnetio, o meu problema e que não estou conseguindo subir o serviço no windows.

coloco hbnetio -i dentro da pasta do programa no servidor

instalo o serviço inicio ele , mais na hora de abrir o arquivo do use da erro

só funciona quando executo o hbnetio.exe com os parametros
hbnetio -iface=ip rootdir=diretoriodos dados

mais com esse procedimento a janela fica aberta tem como rsolver esse problema.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hbnetio

Mensagem por JoséQuintas »

Talvez tenha faltado executar como administrador.

Ou use o utilitário SC.EXE do Windows.
sc /?

DESCRIÇÃO:
SC é um programa da linha de comando usado para a comunicação com o
Gerenciador de Controle de Serviço e os serviços.
USO:
sc <servidor> [comando] [nome do serviço] <opção1> <opção2>...


A opção <servidor> tem a forma "\\Nome_do_Servidor"
Para obter mais ajuda sobre comandos, digite: "sc [comando]"
Comandos:
query ----------- Consulta o status de um serviço ou
enumera o status dos tipos de serviços.
queryex --------- Consulta o status estendido de um serviço ou
enumera o status de tipo de serviços.
...
Digite aí no seu Windows pra pegar o manual completo
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/
alisdava
Usuário Nível 1
Usuário Nível 1
Mensagens: 8
Registrado em: 24 Jul 2010 10:40
Localização: MIRANDOPOLIS/SP

hbnetio

Mensagem por alisdava »

Bom dia

Quintas e amigos

Resolvi o problema com esse aplicativo para instalar o serviço no windows

nssm install Harbour - logo após aparecerá a janela para buscar o arquivo hbnetio.exe

nssm start Harbour -rootdir=diretoriodedados

com esse comando o serviço será inciado com os parâmetros necessários

[]'s
Alex
Anexos
nssm-2.24.zip
(343.55 KiB) Baixado 320 vezes
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hbnetio

Mensagem por JoséQuintas »

O sc.exe do Windows é pra isso, não precisa utilitário a mais.
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/
alisdava
Usuário Nível 1
Usuário Nível 1
Mensagens: 8
Registrado em: 24 Jul 2010 10:40
Localização: MIRANDOPOLIS/SP

hbnetio

Mensagem por alisdava »

Bom dia

Prezados amigos


Como copio um arquivo com hbnetio , antes eu usava copy file arquivo1.dbf to arquivo2.dbf


Grato
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hbnetio

Mensagem por JoséQuintas »

Se a diferença de hbnetio é o prefixo net:, suponho que seja

copy file net:arquivo1.dbf to net:arquivo2.dbf

Se isso não funcionar

use net:arquivo1
copy to net:arquivo2
use
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/
alisdava
Usuário Nível 1
Usuário Nível 1
Mensagens: 8
Registrado em: 24 Jul 2010 10:40
Localização: MIRANDOPOLIS/SP

hbnetio

Mensagem por alisdava »

Bom dia

Caro amigo

Como faço para instalar esse serviço no Servidor Linux
Ana Mitoooo
Usuário Nível 3
Usuário Nível 3
Mensagens: 118
Registrado em: 17 Out 2018 10:00
Localização: Sobradinho/DF

hbnetio

Mensagem por Ana Mitoooo »

Como criar e verificar pastas/diretórios usando hbnetio ?
obg
Responder