Clipper On Line • Ver Tópico - Atualização da HbNetio

Atualização da HbNetio

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

Atualização da HbNetio

Mensagempor asimoes » 27 Jun 2016 21:10

Atualização de hoje da hbnetio

A parte interessante:
USE net:example.org:2942:path/to/file
netio_ProcExec( "example.org:2942:procname" )
or using UNC paths:
USE net://example.org:2942/path/to/file
netio_ProcExec( "//example.org:2942/procname" )
It's also possible to specify the password. The connection string
is in format:
<server>[:<port>[:<passwd>]]:<filepath|funcname>
or:
//<server>:<port>:<passwd>:<filepath|funcname>
or:
//<server>[:<port>]/<filepath|funcname>
Backslashes '\' are also supported and can be used instead of '/'.
Password is always terminated by ":" and whole connection string
is terminated by Chr(0) so it's not possible to use these two
characters as part of password. Anyhow when passwords are required
then it's recommended to open the connection by netio_Connect()
and then specify only server and port if server is not unique
enough to chose from existing connections. If server is not
given then default connection is chosen.
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Atualização da HbNetio

Mensagempor rubens » 30 Out 2018 16:43

O Post é antigo, mas...

ASimoes, ainda está usando Netio?
Vi um exemplo na HMGs e parece bem simples...

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

Atualização da HbNetio

Mensagempor asimoes » 30 Out 2018 17:56

rubens escreveu:O Post é antigo, mas...

ASimoes, ainda está usando Netio?
Vi um exemplo na HMGs e parece bem simples...

Rubens


Somente é um sistema, no momento estou usando a Leto_Dbf (fork)
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Atualização da HbNetio

Mensagempor asimoes » 31 Out 2018 06:57

Hbnetio faz parte da contribuição
Ltodbf projeto independente
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Atualização da HbNetio

Mensagempor Itamar M. Lins Jr. » 31 Out 2018 07:47

Ola!
Tem muita diferença.
Já postei aqui duas vezes o próprio criador do NetIO explicando as diferenças.
NetIO foi criado para suprir/resolver o problema do SMB do windows, pois usando TCP cliente servidor quem usa NetIO não precisa mais mapear a pasta. Mas ele só faz isso.
O LetoDb[f] além disso que tem no NetIO, tem muito mais coisas é muito mais complexo. Roda em redes ADSL por exemplo. Tem até TRANSACTION.
      LETO_BEGINTRANSACTION( [ [ lUnlockAll ] )   
      LETO_ROLLBACK( [ lUnlockAll ] )                          ==> nil
      LETO_COMMITTRANSACTION( [ lUnlockAll ] )                 ==> lSuccess
      LETO_INTRANSACTION()                                     ==> lTransactionActive

Configuração especial para SAMBA.
      4.4 Samba file service

If files served by a Samba server to its clients need to be shared with a LetoDBf server,
LetoDBf must be special configured.

E outras tantas funções importantes prontas.
No NetIO podemos ter funções(criar elas também) do lado do servidor, mas precisamos aprender como fazer via RPC.
o LetoDB[f] roda DOIS processos simultaneamente fica super rápido. Um na porta 2812 e outro na 2813

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Atualização da HbNetio

Mensagempor rubens » 31 Out 2018 08:53

Bom dia
OI problema Itamar é que o LetoDb(f) não é simples de fazer a instalação. O netio na distribuição do Minigui Extends é só compilar e rodar.. .
As informações do Letodb(f) estão muito esparramadas e as vezes não são conclusivas.
É difícil você ir num post ler 12 páginas e no final não conseguir rodar a ferramenta.
Tinha que ter um local onde você baixa o negócio pronto. Esse negócio de ficar compilando lib é meio complicado e se você não acompanha o negócio desde o início não consegue. Nem todo mundo tem conhecimento suficiente para isso. Me lembro do Harbour, enquanto não criaram aquela versão compilada lá a night não sei o quê, muita gente sofria para tentar compilar e o negócio e não conseguia. Depois pronto, deslanchou.
Não adianta postar coisas muito avançadas. Normalmente um usuário do meu perfil e temos muitos aqui ( pelas postagens tenho visto colegas que estão desde 2014 tentando) precisa do negócio mais resumido.
De repente é quando postar uma solução, um tutorial, o Toledo trancar aquele post e deixar só o autor postar novamente.. Quando a gente precisar implantar ou estudar o negócio tá resumido ali.
Não consigo compilar as libs, apresenta um monte de erros, pode ser meu harbour. Então se tiver uma opção compilada é só baixar e pronto.
Outra coisa são os conceitos.
Executo o Letodb.exe intsall
beleza vou lá nos serviços ele está lá. Só isso?
Vi você falando em algumas postagens que depois disso tem que rodar Net alguma coisa, tento a rodar a linha aqui e dá erro. Precisa mesmo desse net alguma coisa?
Sabe eu falo disso. De repente um bate pronto assim. No servidor você faz isso e no terminal você faz isso e pronto..
Estou ainda tentando aqui ...

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

Atualização da HbNetio

Mensagempor JoséQuintas » 31 Out 2018 09:13

rubens escreveu:O netio na distribuição do Minigui Extends é só compilar e rodar.. .


pasta do Harbour, ao gerar o Harbour:

hnnetio.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Atualização da HbNetio

Mensagempor Itamar M. Lins Jr. » 31 Out 2018 09:29

Ola!
No caso vc precisa ser mais especifico.
Suas questões são difíceis de entender para mim.
Não consigo compilar as libs, apresenta um monte de erros,

Cadê os erros ?
Net alguma coisa, tento a rodar a linha aqui e dá erro.

O que é net alguma coisa ? Cadê o erro ?
Seja mais claro. Faça postagens como essa que fez agora. Escreva ai sem medo de ser feliz!
O que vc não está entendendo ?
Vc só postou letodb.ini e letodbf.log até agora e reclamou que não está conseguindo êxito, mas preciso(amos) de mais informações.
beleza vou lá nos serviços ele está lá. Só isso?
Depende de vc, do seu conhecimento sobre serviços do windows.
O que vc não entendeu disso ai ? Faça a pergunta, que se eu não souber outros saberão.
Como ativar serviços do windows ? Ai neste caso já não é com LETODB são comandos do WINDOWS.
tasklist -> lista processos
net start, net stop. Ativar e desativar serviços, isso no Windows no Linux são outros comandos.
E o comando sc que remove(apaga) o serviço do letodb[f]
sc delete letodbf_service.

Precisamos saber através das suas perguntas o seu grau de entendimento do assunto, da forma que faz suas perguntas, eu penso que já sabe.
O Letodbf não tem dificuldade nenhuma.
Basta aprender os conceitos.
letodb.exe e o letodb.ini
e a lib librddleto.a que vc linka com sua aplicação.
Apenas esses 3 arquivos.

VC perguntou se pode rodar os arquivos da pasta exemplo(tests) não foi ?
Faça isso antes de perguntar. Compile e rode \tests\test_dbf.prg por exemplo. O que não entender vc pergunta. Se alguém souber vai responder, ajudar com certeza.
Vai fazendo ai, o que tiver duvida ou não souber vc pergunta.
Coloca o seu código ai para nós vermos como está fazendo.
Olhe o exemplo da pasta tests\test_dbf.prg é simples.
/*
* This sample tests working with dbf files
* Just change the cPath value to that one you need.
*/

REQUEST LETO
REQUEST DBFCDX

#include "dbinfo.ch"

Function Main( cPath )
LOCAL aNames := { "Petr", "Ivan", "Alexander", "Pavel", "Alexey", "Elch", ;
                  "Konstantin", "Vladimir", "Nikolay", "Andrey", "Dmitry", "Sergey" }
LOCAL i, aStru, aServerDriver
LOCAL nPort := 2812
FIELD NAME, NUM, INFO, DINFO, MINFO, TINFO

   ALTD()
   SET DATE FORMAT "dd/mm/yy"

   IF Empty( cPath )
      //cPath := "//127.0.0.1:2812/"
      cPath := ""
      RDDSETDEFAULT( "DBFCDX" )
   ELSE
      cPath := "//" + cPath + IiF( ":" $ cPath, "", ":" + ALLTRIM( STR( nPort ) ) )
      cPath += Iif( Right(cPath,1) == "/", "", "/" )
      RDDSETDEFAULT( "LETO" )
   ENDIF

   IF dbCreate( cPath + "test1", { { "NAME",  "C", 10, 0 },;
                                   { "NUM" ,  "N",  4, 0 },;
                                   { "INFO",  "C", 32, 0 },;
                                   { "DINFO", "D",  8, 0 },;
                                   { "TINFO", "@",  8, 0 },;
                                   { "MINFO", "M", 10, 0 } } )
      ? "File has been created"
   ENDIF

   USE ( cPath + "test1" ) NEW
   IF ! NetErr() .AND. ! EMPTY( ALIAS() )
      ? "File has been opened"
   ELSE
      ? "ERROR opening database! -- press any key to quit"
      Inkey( 0 )
      QUIT
   ENDIF
   aStru := dbStruct()
   ? "Fields:", Len( aStru )
   FOR i := 1 TO Len( aStru )
      ? i, aStru[i,1], aStru[i,2], aStru[i,3], aStru[i,4]
   NEXT

   FOR i := 1 TO Len( aNames )
      APPEND BLANK
      REPLACE NAME  WITH aNames[ i ],;
              NUM   WITH i + 1000,;
              INFO  WITH "This is a record number " + Ltrim( Str( i ) ),;
              DINFO WITH Date() + i - 1,;
              MINFO WITH aNames[ i ]
#ifndef __XHARBOUR__
      REPLACE TINFO WITH IIF( i == 6, HB_STRTOTS( "" ), hb_DToT( DATE() + i, TIME() ) )
#else
      REPLACE TINFO WITH IIF( i == 6, STOT( "00000000000000.000" ),;
                                      STOT( DTOS( DATE() + i ) + LEFT( TIME(), 2 ) + SUBSTR( TIME(),4,2) + RIGHT(TIME(),2) + ".321" ) )
#endif
   NEXT
   ? LEN( aNames ), "Records has been added"
   INDEX ON NAME TAG NAME
   ? "INDEX KEY 1:", indexkey( 1 )
   INDEX ON STR( NUM, 4 ) TAG NUM
   ? "INDEX KEY 2:", indexkey( 2 )
   INDEX ON TINFO TAG TS
   ? "INDEX KEY 3:", indexkey( 3 )
   INDEX ON INFO TAG ASH
   ? "INDEX KEY 3:", indexkey( 4 )
   ? "File has been indexed, "
   ?? DBORDERINFO( DBOI_ORDERCOUNT )
   ?? " active orders "
   ?? Iif( DBORDERINFO( DBOI_ORDERCOUNT ) == 4, "- Ok","- Failure" )

   ?
   ? "Press any key to continue..."
   Inkey( 0 )

   i := RecCount()
   ? "Reccount ", i, Iif( i == Len( aNames ), "- Ok","- Failure" )

   DbSetOrder( 0 )
   GO TOP
   ? "go top   ", NUM, NAME, DINFO, Iif( NUM == 1001, "- Ok","- Failure" )
   REPLACE INFO WITH "First", MINFO WITH "First"

   DbGoTo( 5 )
   REPLACE INFO WITH ""

   GO BOTTOM
   ? "go bottom", NUM, NAME, DINFO, Iif( NUM == 1012, "- Ok","- Failure" )
   REPLACE INFO WITH "Last", MINFO WITH "Last"

   ?
   ? 'ordSetFocus( "NAME" )'
   ordSetFocus( "NAME" )
   GO TOP
   ? "go top   ", NUM, NAME, DINFO, Iif( NUM == 1003, "- Ok","- Failure" )

   SKIP
   ? "skip     ", NUM, NAME, DINFO, Iif( NUM == 1005, "- Ok","- Failure" )

   GO BOTTOM
   ? "go bottom", NUM, NAME, DINFO, Iif( NUM == 1008, "- Ok","- Failure" )

   SKIP -1
   ? "skip -1  ", NUM, NAME, DINFO, Iif( NUM == 1012, "- Ok","- Failure" )

   DbSetOrder( 4 )
   DBGOBOTTOM()
   DBSEEK( "", .T. )
   ? "DbSeek( '',.T. )      ", NUM, NAME, DINFO, Iif( NUM == 1005, "- Ok","- Failure" )
   DbSetOrder( 1 )

   DBGOBOTTOM()
   DBSEEK( "Petr", .F. )
   ? "DbSeek( 'Petr',.F. )  ", NUM, NAME, DINFO, Iif( NUM == 1001, "- Ok","- Failure" )

   DBGOBOTTOM()
   DBSEEK( "Petr", .T. )
   ? "DbSeek( 'Petr',.F. )  ", NUM, NAME, DINFO, Iif( NUM == 1001, "- Ok","- Failure" )

   DBGOBOTTOM()
   DBSEEK( "Pe", .T. )
   ? "DbSeek( 'Pe',.T. )    ", NUM, NAME, DINFO, Iif( NUM == 1001, "- Ok","- Failure" )

   DbSetOrder( 3 )
   DBGOBOTTOM()
#ifndef __XHARBOUR__
   DBSeek( hb_DToT( DATE() + 5 ), .T. )
#else
   DBSeek( STOT( DTOS( DATE() + 5 ) + "000000.000" ), .T. )
#endif
   ? "DbSeek( TS,.T. )      ", NUM, NAME, DINFO, Iif( NUM == 1005, "- Ok","- Failure" )

   DBGOBOTTOM()
#ifndef __XHARBOUR__
   DBSeek( hb_DToT( DATE() + 5 ), .F. )
#else
   DBSeek( STOT( DTOS( DATE() + 5 ) + "000000.000" ), .F. )
#endif
   ? "DbSeek( TS,.F. )      ", NUM, NAME, DINFO, Iif( EOF(), "- Ok","- Failure" )
   DbSetOrder( 1 )

   DBGOTOP()
   DBSEEK( "Sergey", .F. )
   ? "DbSeek( 'Sergey',.F. )", NUM, NAME, DINFO, Iif( NUM == 1012, "- Ok","- Failure" )

   DBGOTOP()
   DBSEEK( "Ser", .T. )
   ? "DbSeek( 'Sergey',.T. )", NUM, NAME, DINFO, Iif( NUM == 1012, "- Ok","- Failure" )

   DBGOTOP()
   DBSEEK( "Sergez", .F. )
   ? "DbSeek( 'Sergez',.F. )", NUM, NAME, DINFO, Iif( EOF(), "- Ok","- Failure" )

   SET FILTER TO NUM >= 1004 .AND. NUM <= 1010
   ?
   ? "SET FILTER TO NUM >= 1004 .AND. NUM <= 1010"
   GO TOP
   ? "go top   ", NUM, NAME, DINFO, Iif( NUM == 1005, "- Ok","- Failure" )

   SKIP
   ? "skip     ", NUM, NAME, DINFO, Iif( NUM == 1010, "- Ok","- Failure" )

   GO BOTTOM
   ? "go bottom", NUM, NAME, DINFO, Iif( NUM == 1008, "- Ok","- Failure" )

   SKIP -1
   ? "skip -1  ", NUM, NAME, DINFO, Iif( NUM == 1004, "- Ok","- Failure" )

   ? "Press any key to continue..."
   Inkey( 0 )

   ?
   ? "SET FILTER TO, SET ORDER TO 0"
   SET FILTER TO
   SET ORDER TO 0

   GO TOP
   ? "First record", Iif( ALLTRIM( INFO ) == "First" .AND. MINFO == "First", "- Ok","- Failure" )

   GO BOTTOM
   ? "Last record ", Iif( ALLTRIM( INFO ) == "Last" .AND. MINFO == "Last", "- Ok","- Failure" )

   ?
   ? 'ordSetFocus( "NUM" ), SET SCOPE TO "1009", "1011"'
   ordSetFocus( "NUM" )
   SET SCOPE TO "1009", "1011"

   GO TOP
   ? "go top", NUM, NAME, DINFO, Iif( NUM == 1009, "- Ok","- Failure" )

   SKIP
   ? "skip  ", NUM, NAME, DINFO, Iif( NUM == 1010, "- Ok","- Failure" )

   SKIP
   ? "skip  ", NUM, NAME, DINFO, Iif( NUM == 1011, "- Ok","- Failure" )

   SKIP
   ? "skip  ", NUM, NAME, DINFO, Iif( Eof(), "- Ok","- Failure" )

   dbCloseAll()

   ?
   ? "Press any key to continue..."
   Inkey( 0 )

   IF RDDSETDEFAULT() == "LETO"
      aServerDriver := leto_DbDriver()
   ENDIF
   IF "CDX" $ RDDSETDEFAULT() .OR. ( VALTYPE( aServerDriver ) == "A" .AND. "CDX" $ aServerDriver[ 1 ] )
      USE ( cPath + "test1" ) NEW
      i := 0
      ? "auto opened index Tags:"
      DO WHILE ! Empty( Ordkey( ++i ) )
         ? i, ordKey( i )
      ENDDO
      OrdSetFocus( 3 )
      OrdDestroy( "TS" )
      ? "Indexord after OrdDestroy():", INDEXORD(), IIF( INDEXORD() == 0, " - Ok", " - Failure" )
   ENDIF

   dbCloseAll()
   ?
   ? "dropping test DBF: "
   ?? Iif( DbDrop( cPath + "test1" ), "- Ok","- Failure" )

   ?
   ? "Press any key to finish ..."
   Inkey( 0 )

Return Nil



Faça perguntas diretas, não apenas reclame e se eu não souber outras pessoas sabem responder.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Atualização da HbNetio

Mensagempor rubens » 31 Out 2018 10:15

Tá vou fazer o seguinte..
Como eu mesmo reclamei da mistura de coisas se continuar neste post aqui vai virar mais mistura ainda..
Vou criar um tópico novo tentando instalar e colocar as fases do processo.
Obrigado
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro