Clipper On Line • Ver Tópico - Atualizações do LetoDBf

Atualizações do LetoDBf

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

Moderador: Moderadores


Atualizações do LetoDBf

Mensagempor Itamar M. Lins Jr. » 07 Mar 2019 18:45

Qual versão do Harbour você está usando? Pergunto porque nas duas versões mais recentes (a de 31/12/2018 e a anterior) tive muito problema na hora de travar registros usando o LETO, então voltei a usar uma versão de Junho de 2017.

Jairo tem campo "MEMO" na estrutura do seu DBF ?

Estou usando a recente do GIT e o Elch fez diversas correções no rlock().

2019-03-07 19:30 UTC+0100 Rolf 'elch' Beckmann (elchs
  * include/srvleto.h
    % make LETO_SENDRECV_BUFFSIZE define-able by user, use: ( x * 8192 ) - 1

  * source/server/leto_win.c
    ! fix buffer overflow in LETO_SERVICEINSTALL(): wrong used hb_strncpy(),
      initialize szPath to be terminated in any case

  * source/server/leto_lnx.c
    * file missing in upload from 2019-02-26

  * source/server/letofunc.c
    ! (wrong) warning of 'possible' uninitalized variable in leto_InitUS()
    * add date of server executable to startup feedback
    * more work on joins in leto_dbEvalJoinAdd()/ leto_dbEvalJoinPreSkip(),
      remove now obsolete leto_dbEvalJoinPostSkip() in leto_dbEval()

2019-02-28 18:29 UTC+0100 Rolf 'elch' Beckmann (elchs
  * source/server/leto_2.c
    * formatting/ cleaning

  * source/server/letofunc.c
    * add configured max users to startup-feedback
    * add logic for combined RIGHT JOINs, plus more work about JOINs

  * source/server/server.prg
    ! an EXIT missing in the CASE switch in method New() for config
      ; Thanks to Ash for his patience to report

  * utils/manager/console.prg
    * add in ActionDecode() text for DbEval()
      slightly modify column lengths in connections browse
      ; full display of all columns need 170 char wide window

2019-02-26 12:09 UTC+0100 Rolf 'elch' Beckmann (elchs
  * bin/
    % do not try to start server if already running

  * source/client/leto1.c
    * validate JOIN string at server, return all joined WA as string to
      add all fields of all WA for mask '*' in LETO_DBEVAL()
    * check for Leto_DbEval() if connection is still up

  * source/server/letofunc.c
    ! fix an ugly bug in thread2():
      after a socket problem the reference to the socket-handle was deleted
    * move assignment/ clearance of sockets into global HB_GC_LOCKU() mutex
    * perform the JOINing before evaluating the FOR/WHILE in leto_dbEval(),
      as the conditions should be able to refer to joined WAs.
    * not deactivate demanded locking in case of joined WA, as the found
      records, even if not need to lock, are positions for the second

  * source/server/leto_lnx.c
    % not manually closing the hNull file handle, it is done by dup2()
      ; now all first three system handles point to /dev/null,
        and stdin as read-only

2019-02-17 18:19 UTC+0100 Rolf 'elch' Beckmann (elchs
  * source/server/letofunc.c
    % collect in 'letodbf.log' notes about possible double used index TAG,
      after leto_IndexesInfo() detected misorder
    * one more fix about the FULL join, plus new join-type 'EMPTY' ;-)

  * include/
  * include/srvleto.h
  * source/client/leto1.c
  * source/server/letofunc.c
    + new RDDI_DBEVALTIMEOUT [ 120s ] timeout value for a single request,
      actually used in Leto_DbEval to limit/stop a runaway request

2019-02-15 21:12 UTC+0100 Rolf 'elch' Beckmann (elchs
  * source/server/letofunc.c
    * more still uncommented work about a planned Leto_DbEval() extension
    * using directly the WA record number not with SELF_RECNO() to avoid
      for special occasion possible pending relations being refreshed

2019-02-14 11:33 UTC+0100 Rolf 'elch' Beckmann (elchs
  * source/server/letofunc.c
    * will comment on that future topic later, just to save changes ...

2019-02-11 20:11 UTC+0100 Rolf 'elch' Beckmann (elchs
  * include/srvleto.h
  * source/server/leto_2.c
  * source/server/letofunc.c
    ! fix if same! table is opened > 64K times ( HB_USHORT -> HB_ULONG )
    ! fix if max configured user exceeded in Leto_UDF()/ seperate thread
    ! add mutex re-using for pUStru in leto_InitUS()

  * source/server/server.prg
    * lower limit of MAX_USERS to >= 9
      ; it have influence on digit-length of letodbf_xxx.log file-name,
        so instead 1000 better to use 999

2019-02-04 10:01 UTC+0100 Rolf 'elch' Beckmann (elchs
  * include/letocl.h
  * source/client/letocl.c
  * source/server/leto_2.c
  * source/server/letofunc.c
  * source/server/server.prg
    ! fix two overlooked 'hb_parc( 2 )' in internal LetoToggleZip() instead
      of using 2nd function param
    * re-use letodb.ini option: Crypt_Traffic = 1  [ default '0' ]
      ; If activated, client is informed network encryption must be used,
      then even its initial 'Intro' request is send encrypted.
      This is nearly the same as manually using Leto_ToggleZip() with a
      password, where here the used password is a 31-byte random key,
      !plus! it will block any connection not using LETO encryption.
      ; please also rebuild 'console' if want to use
    * new boolean param [encrypt] for LETO_CREATEDATA()/ leto_SrvSetPort()
    * ensure LETO_SENDMESSAGE() can be executed only by server executable
    * harden server-stop request in Leto_SendMessage() by adding an encoded
      keyword to the request, verified in leto_StopServer()

  * Readme.txt

2019-01-26 22:36 UTC+0100 Rolf 'elch' Beckmann (elchs
  * include/
  * source/client/letocl.c
    + new RDDI_BUFREFRESHTIME for RddInfo(), smilar 5th of LETO_CONNECT()
    * add respect of DBI_AUTOREFRESH in letoPutValue() for field updates:
      when a field update happend after cache timed-out, it will be refreshed
      automatic to server even without a DbCommit()/ DbUnlock()

  * source/server/letofunc.c
    ! change from 2019-01-05 09:49:
      "refresh given EOF flag after table hotbuffer timeout with a SKIP(0)"
      still didn't worked, fixed by performing SELF_GOTO() in leto_GotoIf()
      to refresh EOF flag when set

  * Readme.txt
    * missing comment on RddInfo( RDDI_DBEVALCOMPAT ) for LetoDbEval()
    * note that as integer created Leto_Var() keeps to be without decimals

2019-01-25 12:19 UTC+0100 Rolf 'elch' Beckmann (elchs
  * source/phpclient/letocl.php
  * tests/php/testleto1.php
    ! restoring basic PHP access-ability to LetoDBf server
    ; tested with Nginx 1.14/ PHP 7.2 [-fpm] fastCGI module.
      Note that *no* argument can be transfered to the UDF function,
      and *no* returned result can be directly recieved;
      Basic idea is to use the Leto_Var*() system for information exchange,
      as both sides can access it.
      Further is missing the whole workarea environment at PHP side, so a
      PHP access to LetoDBf is very limited and inconvenient manually.

2019-01-23 19:23 UTC+0100 Rolf 'elch' Beckmann (elchs
  * Readme.txt
    * remove one illegal char; typo

  * source/server/server.prg
    ! immedediate return in Leto_SetEnv() if no active WA;
      avoid RTE if a WA with saved states is closed before Leto_ClearEnv(),
    * formatting

2019-01-23 17:01 UTC+0100 Rolf 'elch' Beckmann (elchs
  * source/server/server.prg
    ; facelifting for old inherited leto_SetEnv() and leto_ClearEnv():
    * switch single statics into one thread-local hash-array, which stores
      values per ALIAS as sub-hash
    * leto_SetEnv() save states before its first change for active WA;
      all possible states for one WA if no param given
    * leto_ClearEnv() no more need any param, a single call will restore
      all saved states for all WA

  * Readme.txt
    * about above, some more notes for chapter: 9. Server-side functions

Olha esses dois FIXEs que ele fez relativo ao rlock.

2018-06-26 19:50 UTC+0100 Rolf 'elch' Beckmann (elchs
* source/client/leto1.c
+ add PRG functions LETO- _TABLELOCK, _TABLEUNLOCK for client side;
* universalize LETO- _RECLOCK, _RECUNLOCK to handle also non-LETO WA
+ leto_LockValidate()
automatic replace in Leto_DBEval() expression Harbour lock functions
with LETO variants -- validate made lock is unlocked:
rlock()/ dbrlock() => Leto_RecLock(); dbrunlock() => Leto_RecUnlock()
flock() => Leto_TableLock(); dbunlock() => Leto_TableUnlock()

* source/client/rddsys.prg

* Readme.txt
* a straying bracket :-(

2018-06-15 18:48 UTC+0100 Rolf 'elch' Beckmann (elchs
; ( maybe rare used ) bug fixes ! -- refresh server and client for news:
# support named ( LETO extension ) and OS none-named temporary tables
# server-side executable ( by stingified codeblocks <for> and <while> )
'record processing commands' with new header file ""
# transactions: ignore-to-unlock until commit' mode for easy integration
to existing source with 'unlocks'
# RDDI_AUTOLOCK in conjunction with a timeout value to get lock success,
used in leto_DbEval() for shared opened tables -- whereas leto_DbEval()
is fast server side query [opt. data change] into a sum or resultset!
# performance for sequence: Rlock(); change data; DbUnlock()
spares a network package ( 'unlock' send together with data update )

Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.

Mensagens: 3535
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 113 vezes
Mens.Curtidas: 175 vezes

Atualizações do LetoDBf

Mensagempor Nascimento » 07 Mar 2019 23:38

amigo itamar eu tive uns problemas de travamento requerido, no winserver 2008 r2, instalei o win7 no inicio deu tambem , mais no win7 resolvi ja no 2008 não consegui não
no win7 "não sei se tem algo haver" mais deu certo criei um novo usuario admistrador entrei por ele instalei o letodb , parou o erro de travamento requerido
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar de usuário

Usuário Nível 3

Usuário Nível 3
Mensagens: 490
Data de registro: 19 Jul 2008 12:11
Cidade/Estado: OLINDA-PE
Curtiu: 67 vezes
Mens.Curtidas: 51 vezes

Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante

Faça uma doação para o forum
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro