RDD LETO Sem Mistério
Moderador: Moderadores
RDD LETO Sem Mistério
Itamar,
O meu CVS não baixa nenhuma atualização do letodb a muito tempo.
Houve alguma mudança?
O meu CVS não baixa nenhuma atualização do letodb a muito tempo.
Houve alguma mudança?
►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)
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)
RDD LETO Sem Mistério
Como eu passei a usar o NETIO faz muito tempo que não acompanho as atualizações do letodb essa que você tá me informando Itamar deve ser recente, porque eu sempre mando o cvs atualizar minigui, harbourboleto e letodb(não traz nada)
[]
[]
►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)
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)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
RDD LETO Sem Mistério
Tem muitas, desde que o Pavel criou o ramo BRANCH, deve pegar o branch(ramo) via cvs rel-1-mt.
http://sourceforge.net/projects/letodb/files/, da uma olhada na data.
No seu CVS do leto é só escolher a opção branch ou ramo se estiver em portugues e digita rel-1-mt
Saudações,
Itamar M. Lins Jr.
http://sourceforge.net/projects/letodb/files/, da uma olhada na data.
No seu CVS do leto é só escolher a opção branch ou ramo se estiver em portugues e digita rel-1-mt
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
RDD LETO Sem Mistério
Itamar, entendi, valeu.
Uma pergunta: você já conseguiu compilar com msvc?
Uma pergunta: você já conseguiu compilar com msvc?
►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)
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)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
RDD LETO Sem Mistério
Eu não tentei porque estou usando o Mingw.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
RDD LETO Sem Mistério
Amigos,
Gostaria de parabenizar os colegas pelo empenho em ensinar o uso do RDD LETO.
Hoje estou usando xHarbour 1.2.1 / BCC 5.8.2 / DBFCDX. Em alguns clientes uso TS.
Estive procurando informações sobre o LETODB e mesmo lendo todo o tópico ainda me restam algumas dúvidas e em alguns casos confirmações.
Não tenho certeza, mais me parece que o amigo Itamar é um dos únicos que está usando em produção, me perdoe se estiver errado.
Para o meu caso irei usar o LETODB para uma rede local,com um servidor windows Server 2008 Enterprise. Estações windows'xp sp3.
Dúvidas
- Com o uso do LETODB irei ter a mesma performance que tenho com TS? Ou melhor, o que poderia esperar como ganho de performance?
- Quanto a segurança, o que o LETODB oferece?
- No meu servidor eu tenho dois HD's. Um deles fica uma pasta onde estão quase todos os banco de dados, que seria: E:\ESTOQ\00001 e os arquivos financeiros em outra pasta E:\FINANC\00001. No outro hd, tenho uma pasta: H:\H\00001 onde ficam informações confidências. Quando estou usando o sistema preciso trabalhar com tabelas localizadas em todas as pastas acima. Isso é possível com o LETODB?
- Pelo que puder entender o processamento das informações acontecem no servidor, seria correto pensar que o tráfego de rede seria somente das respostas obtidas do servidor? Ou seja, segue a mesma idéia de um motor SQL.
Confirmações sobre instalação e uso
- Instalação no Servidor: É só criar uma pasta, e deixar o arquivo LETODB.EXE e iniciar o servidor no autoexec.nt com a seguinte linha: c:\letodb\LETODB install. Não entendi bem, se é necessário também a linha: net start letodb_service
Nas estações
- Em cada estação criar uma pasta onde ficará o executável do sistema e um arquivo INI. Não sei se é necessário usar este arquivo INI ou se posso informar isso direto no FONTE.
No Programa
- Dentro do sistema tenho que criar uma rotina conforme o código do amigo Itamar:
Saudações,
Júlio.
Gostaria de parabenizar os colegas pelo empenho em ensinar o uso do RDD LETO.
Hoje estou usando xHarbour 1.2.1 / BCC 5.8.2 / DBFCDX. Em alguns clientes uso TS.
Estive procurando informações sobre o LETODB e mesmo lendo todo o tópico ainda me restam algumas dúvidas e em alguns casos confirmações.
Não tenho certeza, mais me parece que o amigo Itamar é um dos únicos que está usando em produção, me perdoe se estiver errado.
Para o meu caso irei usar o LETODB para uma rede local,com um servidor windows Server 2008 Enterprise. Estações windows'xp sp3.
Dúvidas
- Com o uso do LETODB irei ter a mesma performance que tenho com TS? Ou melhor, o que poderia esperar como ganho de performance?
- Quanto a segurança, o que o LETODB oferece?
- No meu servidor eu tenho dois HD's. Um deles fica uma pasta onde estão quase todos os banco de dados, que seria: E:\ESTOQ\00001 e os arquivos financeiros em outra pasta E:\FINANC\00001. No outro hd, tenho uma pasta: H:\H\00001 onde ficam informações confidências. Quando estou usando o sistema preciso trabalhar com tabelas localizadas em todas as pastas acima. Isso é possível com o LETODB?
- Pelo que puder entender o processamento das informações acontecem no servidor, seria correto pensar que o tráfego de rede seria somente das respostas obtidas do servidor? Ou seja, segue a mesma idéia de um motor SQL.
Confirmações sobre instalação e uso
- Instalação no Servidor: É só criar uma pasta, e deixar o arquivo LETODB.EXE e iniciar o servidor no autoexec.nt com a seguinte linha: c:\letodb\LETODB install. Não entendi bem, se é necessário também a linha: net start letodb_service
Nas estações
- Em cada estação criar uma pasta onde ficará o executável do sistema e um arquivo INI. Não sei se é necessário usar este arquivo INI ou se posso informar isso direto no FONTE.
No Programa
- Dentro do sistema tenho que criar uma rotina conforme o código do amigo Itamar:
- Seria somente implementar as rotinas acima em meus sistemas para que possa trabalhar com o LETODB?Itamar M. Lins Jr. escreveu://fragmentos do código que eu uso.
02 Local cHost := "//localhost:2812/"
03
04 nConect := leto_Connect( cHost )
05 IF nConect == -1
06 nRes := leto_Connect_Err()
07 IF nRes == LETO_ERR_LOGIN
08 MsgStop( "Falha ao Logar" )
09 ELSEIF nRes == LETO_ERR_RECV
10 MsgStop( "Error ao conectar" )
11 ELSEIF nRes == LETO_ERR_SEND
12 MsgStop( "Erro de envio" )
13 ELSE
14 MsgStop( "Não connectado ao servidor: " + cHost )
15 ENDIF
16 Return .f.
17 ENDIF
18 EndIf
19
20 Function AbreDB(...)
21
22 BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }
23 If lRddLeto
24 If Leto_File(cHost+Db)
25 DbUseArea(.t.,"LETO",cHost+DB,apel,.T.,.F.,'PTISO')
26 Else
27 MsgStop('LetoDb Não Localizou o Arquivo: '+cHost+Db)
28 lRet := .f.
29 EndIf
30 Else
31 DbUseArea(.t.,'DBFCDX',dDados+DB,apel,.T.,.F.,'PTISO')
32 EndIf
33
34 Recover
35 If lRddleto
36 msginfo('Erro, abrindo Arquivo: '+cHost+Db+' Compartilhado')
37 Else
38 msginfo('Erro, abrindo Arquivo: '+dDados+Db+' Compartilhado')
39 EndIF
40 lRet := .f.
41 End Sequence
42
43 if Neterr()
44 MsgInfo('Usado de Forma Exclusiva, Em Outro Lugar.')
45 lRet := .f.
46 endif
Saudações,
Júlio.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
RDD LETO Sem Mistério
Ola!
Sobre o TS já foi respondido.
Quanto a segurança, o leto tem criptografia de dados, e o acesso é via TCP/IP.
Pode rodar várias estâncias do Letodb em portas diferentes.
Por exemplo porta 2812 que é o padrão h:\xyz\financ
outra na porta 2813 g:\xyz\estoques... etc...
Sobre o motor SQL, é o mesmo principio. São feitas solicitações ao servidor e este retorna os resultados.
Como inicializar: ou via serviço do windows ou via autoexec isso irá depender de como o letodb foi compilado.
Saudações,
Itamar M. Lins Jr.
Sobre o TS já foi respondido.
Quanto a segurança, o leto tem criptografia de dados, e o acesso é via TCP/IP.
Sobre a localização dos DBF´s:Pass_for_Login = 0 - if 1, user authentication is necessary to
login to the server;
Pass_for_Manage = 0 - if 1, user authentication is necessary to
use management functions ( Leto_mggetinfo(), etc. );
Pass_for_Data = 0 - if 1, user authentication is necessary to
have write access to the data;
Pass_File = "leto_users" - the path and name of users info file;
Crypt_Traffic = 0 - if 1, the data passes to the network encrypted;
Share_Tables = 0 - if 0 (default, this mode server was the only from the
start of a letodb project), the letodb opens all
tables in an exclusive mode, what allows to increase
the speed. If 1 (new mode, added since June 11, 2009),
tables are opened in the same mode as client
applications opens them, exclusive or shared, what
allows the letodb to work in coexistence with other
types of applications.
Pode rodar várias estâncias do Letodb em portas diferentes.
Por exemplo porta 2812 que é o padrão h:\xyz\financ
outra na porta 2813 g:\xyz\estoques... etc...
Sobre o motor SQL, é o mesmo principio. São feitas solicitações ao servidor e este retorna os resultados.
Como inicializar: ou via serviço do windows ou via autoexec isso irá depender de como o letodb foi compilado.
Código: Selecionar todos
#ifdef __WIN_DAEMON__
StartServer()
#endif
#ifdef __WIN_SERVICE__
IF cCommand != NIL
IF Lower( cCommand ) == "install"
IF leto_serviceInstall()
WrLog( "LetoDB service has been successfully installed" )
ELSE
WrLog( "Error installing LetoDB service: " + Str( letowin_GetLastError() ) )
ENDIF
RETURN
ELSEIF Lower( cCommand ) == "uninstall"
IF leto_serviceDelete()
WrLog( "LetoDB service has been deleted" )
ELSE
WrLog( "Error deleting LetoDB service: " + Str( letowin_GetLastError() ) )
ENDIF
RETURN
ELSEIF Lower( cCommand ) == "test"
StartServer()
RETURN
ELSE
? "LetoDB_mt { install | uninstall }"
ENDIF
RETURN
ENDIF
IF ! leto_serviceStart( "StartServer" )
WrLog( "LetoDB service has had some problems: " + Str( letowin_GetLastError() ) )
ENDIF
//!!!!!!!!!!!!!!! DO WHILE win_serviceGetStatus() == WIN_SERVICE_RUNNING
#endif
#ifdef __LINUX_DAEMON__
IF !leto_Daemon()
WrLog( "Can't become a daemon" )
RETURN
ENDIF
StartServer()
#endif
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
RDD LETO Sem Mistério
Existe uma série de questão que devemos levar em conta. Uma delas é o código de como está projetado, muitas vez é desenvolvido para rodar alguns arquivos temporario na maquina local como c:\temp e quando coloca em TS isso vira tudo o mesmo C:\ e pode causar uma série de problemas colaterais.
Sem duvida o TS é muito mais rápido que LETODB(em rede e por internet), e também sem duvida o LETODB é mais seguro e mais rápido que DBFCDX.
Sem duvida o TS é muito mais rápido que LETODB(em rede e por internet), e também sem duvida o LETODB é mais seguro e mais rápido que DBFCDX.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- alberto_dias
- Usuário Nível 2

- Mensagens: 64
- Registrado em: 10 Abr 2005 09:46
- Localização: Taboão da Serra - SP
- Contato:
RDD LETO Sem Mistério
Amigos,
Parabens pelo incentivo do uso do RDD leto,
Estou testando, e já estou conseguindo, rodar o Servidor letodb.exe, Conectar ao Banco de Dados e Ler os registros,
mas não estou conseguindo usar a função Leto_File
Não sei onde estou errando, abaixo, coloquei uns dados do código, letodb.ini, se alguem puder me ajudar, agraceço muito, :%
Estou utilizando:
Harbour 3.0.0 (Rev. 16951)
Copyright (c) 1999-2011, http://harbour-project.org/
=============================================
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
==============================================================
Leto DB Server v.2.09 ! INIT: DataPath=G:\SISTEMA, ShareTables=0, MaxUsers=500, MaxTables=5000, CacheRecords=10
======================================================================================================
Parabens pelo incentivo do uso do RDD leto,
Estou testando, e já estou conseguindo, rodar o Servidor letodb.exe, Conectar ao Banco de Dados e Ler os registros,
mas não estou conseguindo usar a função Leto_File
Não sei onde estou errando, abaixo, coloquei uns dados do código, letodb.ini, se alguem puder me ajudar, agraceço muito, :%
Código: Selecionar todos
// TESTES LETODB 29/12/2012 AS 11:30 HS
Function Main
Local corant := SETCOLOR()
CLS
Set AutOpen on
REQUEST DBFCDX,LETO
DBSETDRIVER("dbfcdx")
RDDSETDEFAULT( "LETO" )
RESTORE FROM csconfig ADDITIVE
// ARQUIVO LOCAL TEM QUE TER VIA DBFCDX
USE ( "ARPARLOC" ) VIA "DBFCDX" NEW
ARMCAMVAR()
CLOSE
PRIVATE cPath := ALLTRIM(endserd)
PRIVATE dirserd := cPath
leto_disconnect()
IF ( leto_Connect( cPath ) ) == -1
alert("Nao foi possivel conectar ao Servidor")
close all
quit
endif
DADOS := leto_mggetinfo()
@ 01,01 SAY DADOS[1]
@ 02,01 SAY DADOS[2]
@ 03,01 SAY DADOS[3]
@ 04,01 SAY DADOS[4]
@ 05,01 SAY DADOS[5]
@ 06,01 SAY DADOS[6]
@ 07,01 SAY DADOS[7]
@ 08,01 SAY DADOS[8]
@ 09,01 SAY DADOS[9]
@ 10,01 SAY DADOS[10]
@ 11,01 SAY DADOS[11]
@ 12,01 SAY DADOS[12]
@ 13,01 SAY DADOS[13]
@ 14,01 SAY DADOS[14]
@ 15,01 SAY DADOS[15]
@ 16,01 SAY DADOS[16]
@ 17,01 SAY DADOS[17]
@ 23,01 SAY cPath+" "+endserd+" "+dddosser
@ 24,01 SAY dirserd COLOR "W/B"
if leto_file( dirserd+"cadprodu.dbf") = .t.
ALERT( "ENCONTRADO "+dirserd+" CADPRODU" )
ELSE
ALERT( "NAO ENCONTRADO "+dirserd+" CADPRODU" )
ENDIF
use ( dirserd+"CADPRODU" ) New
SET INDEX TO ( dirserd+"CADPRODU" )
SET ORDER TO 2
GO TOP
browse(1,1,22,78)
close all
LETO_DISCONNECT()
SETCOLOR(corant)
CLS
quit
Return Nil
FUNCTION Armcamvar
nc = FCOUNT()
FOR av = 1 TO nc
IF TYPE(FIELD(av)) <> 'M'
nomecampo := FIELDNAME(av)
nomevar := nomecampo + "d"
PUBLIC &nomevar
&nomevar := &nomecampo
ENDIF
NEXT av
RETURN(.T.)
* FIM DESTE MODULOCódigo: Selecionar todos
[MAIN]
Port = 2812
DataPath = G:\SISTEMA
Logfile = "letodb.log"
Default_Driver = CDX
Lower_Path = 0 ; 1, converter todos os caminhos para minúsculas
EnableFileFunc = 1 ; 1, Ativa leto_file(), leto_ferase(), leto_frename()
EnableAnyExt = 0 ; 1, é Ativado a criação de arquivos de dados (DBF)
Pass_for_Login = 0 ; 1, autenticação do usuário é necessária p/ acessar
Pass_for_Manage = 0 ; 1, a autenticação necessária p/ func Leto_mggetinfo()
Pass_for_Data = 0 ; 1, a autenticação necessária acesso aos dados
Pass_File = "leto_users" ; caminho, arquivo de informações dos usuários
Crypt_Traffic = 0 ; 1, passa os dados pela a rede cripitografado
[DATABASE]
DataPath = G:\SISTEMA
Driver = CDX
; NAO ALTERAR SEM CONSULTA PREVIA
; LETODB.INI ALTERADO EM 29/12/2012 AS 11:06 HS
; ANALISTA PARA CONSULTA: ALBERTO DIAS
; CENTRAL SOFTWARE INFORMATICA LTDA
; SERVIDOR ATUAL 192.168.0.11 PORTA 2812
Harbour 3.0.0 (Rev. 16951)
Copyright (c) 1999-2011, http://harbour-project.org/
=============================================
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
==============================================================
Leto DB Server v.2.09 ! INIT: DataPath=G:\SISTEMA, ShareTables=0, MaxUsers=500, MaxTables=5000, CacheRecords=10
======================================================================================================
Alberto Dias
Atual.: Harbour 3.2.0 dev (r1703241902) + Gtwvg E Hmg IDE 3.5
Máquina Notebook - DELL ( INTEL CORE i5 ) 8 GB
Sistema - Windows 10 64 Bits
Atual.: Harbour 3.2.0 dev (r1703241902) + Gtwvg E Hmg IDE 3.5
Máquina Notebook - DELL ( INTEL CORE i5 ) 8 GB
Sistema - Windows 10 64 Bits
RDD LETO Sem Mistério
Prezados,
Alguém já testou o acesso com usuário e senha? não estou conseguindo sucesso.
Alguém já testou o acesso com usuário e senha? não estou conseguindo sucesso.
►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)
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)
RDD LETO Sem Mistério
Pessoal,
Estou tentando o uso de uma função que eu fiz e funciona com o servidor netio no letodb.
Primeiro criei essa função no server.prg (\source\server)
E estou usando a função LETO_UDF()
Estou fazendo assim:
Ocorre que os parametros passados para a função UDF_Backup estão entrando nulos, será que é um erro da função LETO_UDF?
Estou fazendo alguma coisa errada?
A versão do letodb é a 2.09
Estou tentando o uso de uma função que eu fiz e funciona com o servidor netio no letodb.
Primeiro criei essa função no server.prg (\source\server)
E estou usando a função LETO_UDF()
Estou fazendo assim:
Código: Selecionar todos
cPasta:="BOLETOS_DB_"+HB_DTOC(Date(),"YYYY_MM_DD")+"-"+Left(StrTran(Time(),":"),4)
LETO_UDF("UDF_Backup",cPasta,"numero.dbf")
Código: Selecionar todos
//Função no server.prg
FUNCTION UDF_Backup( cPasta, cArquivo )
LOCAL I, lErro:=.F., nErro
HB_Default(@cArquivo,"")
HB_Default(@cPasta,"DB_"+HB_DTOC(Date(),"YYYY_MM_DD")+"-"+Left(StrTran(Time(),":"),4))
TRY
IF !IsDir(cPasta)
DirMake(cPasta)
ENDIF
__CopyFile("DB"+HB_PS()+cArquivo,cPasta+HB_PS()+cArquivo)
CATCH
lErro:=.T.
END
RETURN lErro
A versão do letodb é a 2.09
►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)
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)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
RDD LETO Sem Mistério
Depende, pois o TS manda as TELAS BMP para a estação, enquanto os dados de um DBF pode ser muito menor, por isso temos a opção no TS de diminuir as CORES, quanto mais resolução mais lento fica.Sem duvida o TS é muito mais rápido que LETODB(em rede e por internet), e também sem duvida o LETODB é mais seguro e mais rápido que DBFCDX.
Já o LetoDB não tem nada disso, algumas vezes eu usei TS e Letodb, o Letodb foi mais rápido.
Seria o mesmo que afirmar que o TS é mais rápido que uma aplicação usando algum motor SQL tipo Oracle, PGSQL...
Uma coisa é retornar uma consulta SQL com 1.000.000 de registros outra coisa é otimizar para receber apenas 50 registros.
Podemos usar até HTML+hbscript/cgi+Letodb para aplicações WEB.
Outra coisa, numa rede local o letodb sempre foi mais rápido que o TS quando eu testei, é até mais rápido (as vezes) que uma aplicação usando DBFCDX local pois o LETODB tem "memória CACHE", buffers...
O TS depende do servidor, CPU, memória, configuração, se por algum motivo ficar algo consumindo os recursos no servidor, por exemplo aquele programinha anti virus ordinário, as estações ficam muito lentas usando TS, já os motores SQL´s da vida não sente tanto assim a lerdeza do servidor, sem falar no encomodo de fazer dois logins.
Qualquer browse, faz a renderização no lado do cliente o TS manda as telas já redenrizadas para a estação. Isso me encomoda eu não gosto, é similar a esses programas que existe de suporte remoto, logmein, teamviewer...
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
RDD LETO Sem Mistério
Pessoal,
Descobri o problema do parêmetro:
Obrigatoriamente para o letodb no server.prg ou letoudf.prg deve ser informado o parâmetro nUserStru (1º parâmetro!!!) depois os parâmetros que realmente sua função vai usar.
Na chamada da função:
Com Leto_UDF:
Leto_UDF("UDF_Backup","TESTE","TESTE.DBF")
Descobri o problema do parêmetro:
Obrigatoriamente para o letodb no server.prg ou letoudf.prg deve ser informado o parâmetro nUserStru (1º parâmetro!!!) depois os parâmetros que realmente sua função vai usar.
Na chamada da função:
Com Leto_UDF:
Leto_UDF("UDF_Backup","TESTE","TESTE.DBF")
Código: Selecionar todos
FUNCTION UDF_Backup( nUserStru, cPasta, cArquivo )
LOCAL I, lErro:=.F., nErro
HB_Default(@cArquivo,"")
HB_Default(@cPasta,"DB_"+HB_DTOC(Date(),"YYYY_MM_DD")+"-"+Left(StrTran(Time(),":"),4))
TRY
IF !IsDir(cPasta)
DirMake(cPasta)
//strfile(cArquivo+HB_EOL(),"TESTE.LOG",.T.)
ENDIF
__CopyFile("DB"+HB_PS()+cArquivo,cPasta+HB_PS()+cArquivo)
CATCH
lErro:=.T.
END
RETURN lErro
►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)
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)
RDD LETO Sem Mistério
O que eu mais gostei nesta versão do LetoDb é a criação de serviço windows pelo próprio letodb, algum tempo atrás eu usava um programa de terceiros para isso.
A possibilidade de rodar funções UDF no servidor eu achei muito legal. O letodb no momento está oferecendo muito mais recursos que o seu irmão netio do harbour.
A possibilidade de rodar funções UDF no servidor eu achei muito legal. O letodb no momento está oferecendo muito mais recursos que o seu irmão netio do harbour.
►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)
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)
RDD LETO Sem Mistério
Se for rodar como serviço tem que usar a função hb_dirbase(), problemas do windows...
Não sei é isto, quando você cria o serviço não tem a pasta de trabalho para informar.
Percebi isso, porque eu fiz uma versão console e outra serviço, com a versão console usei o camilho relativo para criar a pasta e copiar o arquivo, com a versão serviço fui obrigado a usar o caminho absoluto (hb_dirbase())
Não sei é isto, quando você cria o serviço não tem a pasta de trabalho para informar.
Percebi isso, porque eu fiz uma versão console e outra serviço, com a versão console usei o camilho relativo para criar a pasta e copiar o arquivo, com a versão serviço fui obrigado a usar o caminho absoluto (hb_dirbase())
Código: Selecionar todos
FUNCTION UDF_Backup( nUserStru, cPasta, cArquivo )
LOCAL I, lErro:=.F., nErro
HB_Default(@cArquivo,"")
HB_Default(@cPasta,"DB_"+HB_DTOC(Date(),"YYYY_MM_DD")+"-"+Left(StrTran(Time(),":"),4))
TRY
IF !IsDir(hb_dirbase()+cPasta)
DirMake(hb_dirbase()+cPasta)
ENDIF
__CopyFile(hb_dirbase()+"DB"+HB_PS()+cArquivo,hb_dirbase()+cPasta+HB_PS()+cArquivo)
CATCH
lErro:=.T.
END
RETURN lErro
►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)
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)

