Página 1 de 2

hbnetio

Enviado: 05 Mai 2021 12:13
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....

hbnetio

Enviado: 07 Mai 2021 14:00
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.

hbnetio

Enviado: 07 Mai 2021 15:01
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.

hbnetio

Enviado: 07 Mai 2021 15:08
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 )

hbnetio

Enviado: 07 Mai 2021 15:52
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.

hbnetio

Enviado: 07 Mai 2021 16:53
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.

hbnetio

Enviado: 07 Mai 2021 18:14
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.

hbnetio

Enviado: 08 Mai 2021 13:42
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.

hbnetio

Enviado: 08 Mai 2021 15:20
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

hbnetio

Enviado: 10 Mai 2021 07:58
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

hbnetio

Enviado: 10 Mai 2021 08:23
por JoséQuintas
O sc.exe do Windows é pra isso, não precisa utilitário a mais.

hbnetio

Enviado: 13 Mai 2021 11:50
por alisdava
Bom dia

Prezados amigos


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


Grato

hbnetio

Enviado: 13 Mai 2021 12:58
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

hbnetio

Enviado: 06 Out 2022 11:42
por alisdava
Bom dia

Caro amigo

Como faço para instalar esse serviço no Servidor Linux

hbnetio

Enviado: 06 Out 2022 13:42
por Ana Mitoooo
Como criar e verificar pastas/diretórios usando hbnetio ?
obg