LetoDB

Postby Carlos Mora » Fri Jul 18, 2008 1:13 pm

Hola Antonio,
(recorta el mensaje, no hace falta duplicar TODO respondiendo en un foro ;)

Antonio Martinez wrote:Pero quiza en LetoDb se podria montar una funcion CreateCursor() o CreateVista() por ponerle nombre, que devolveria un fichero puente con los datos seleccionados; al ser el servidor el que lo ejecutara deberia ser rapido.
Cada registro de ese fichero puente (o vista o cursor) deberia contener un campo llamado Recno_ que seria el recno() de su maestro (o padre)

Te explicas, pero eso es harina de otro costal. Creo que estás confundiendo el objetivo principal de Leto. Insisto: Leto es un acceso ISAM, montado sobre TCP/IP. Lo que tu quieres hacer, de hecho, lo puedes hacer a mano y no hace falta que lo haga el cliente de Leto. Para hacer ese tipo de cosas, directamente optaría por usar SQL.

Y si usas ADO, prueba de hacer un browse sobre un servidor remoto.

Un saludo,

Carlos.
Carlos Mora
 
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Postby horacio » Fri Jul 18, 2008 4:04 pm

El enlace de rené flores ya no funciona. De todas maneras era super lento. He probado winasp y realmente es bueno para trabajar dbf´s en internet, muy rápido. Una inquietud. A partir de que versión de xHarbour es posible generar el ejecutable del servidor letodb. Lo he intentado con la versión 0.99.60 y hay algunas funciones que no poseo. Alguien sabe. Gracias de antemano
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Postby Antonio Martinez » Sat Jul 19, 2008 12:15 pm

Carlos,

Creo que entiendo lo que dices de que el modo ISAM no es lo mejor para trabajar en remoto... pero siendo esto asi quiza se amolda mejor a nuestra forma de trabajar... y si se le hacen unas pequeñas mejoras al leto la cosa puede ir de maravillas...
Yo te decia que la funcion CreateCursor() se debia crear en el servidor de leto porque si la creamos en el cliente, todos los datos, incluyendo lecturas y descartes de registros, han de pasar por el cable... si se crea en el servidos solo pasarian los datos SI validos... e incluso podrian generarse en un formato comprimido que al recibirse se descomprimiera... no se si me ha liado con esto ultimo



[quote="Carlos Mora"]Hola Antonio,
(recorta el mensaje, no hace falta duplicar TODO respondiendo en un foro ;)


Hecho ;)
Antonio Martinez
 
Posts: 72
Joined: Tue Sep 11, 2007 3:51 pm

Postby Alfredo Arteaga » Mon Jul 21, 2008 4:45 pm

Avances:

Ya compilé mi aplicación RC (Registro Contable), solo agregué los parámetros de conexión y ajustes en apertura de tablas, mas de 100 prgs y mas de 75 tablas.

Todo parece funcionar en red local excepto los Scopes() cuando se tienen índices compuestos con funciones p.e. Cve_Cliente+DtoS(Fecha).

Muy poca diferencia en la velocidad de acceso, digamos normal.

Code: Select all  Expand view
FUNCTION Open_Dbf(cDbf,lDat,lShr)
   LOCAL cDriver:=DbSetDriver()
   LOCAL cAlias, cFile, cPat
   DEFAULT lDat:=.T., lShr:=.T.
   CursorWait()
   IF     cDriver="DBFCDX"
      cPat:=IF(lDat,cPatD,cPath)
   ELSEIF cDriver="LETO"
      cPat:=IF(lDat,cPatD,cHost)
   ELSEIF cDriver="SQLRDD"
      IF lDat
         SR_SetActiveConnection(nData)
      ELSE
         SR_SetActiveConnection(nMain)
      ENDIF
   ENDIF
   cDbf:=Upper(cDbf)
   cAlias:=New_Alias(cDbf,nD)
   cFile :=IF(cDriver="DBFCDX" .OR. cDriver="LETO",cPat+Upper(cDbf),cDbf+".DBF")
   DbUseArea(.T.,cDriver,cFile,cAlias,lShr,.F.)
   IF !Empty(OrdName(1))
      (cAlias)->(OrdSetFocus(1))
   ENDIF
   CursorArrow()
RETURN (cAlias)
User avatar
Alfredo Arteaga
 
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico

Postby Carlos Mora » Tue Jul 22, 2008 5:04 pm

Antonio Martinez wrote:Carlos,

Creo que entiendo lo que dices de que el modo ISAM no es lo mejor para trabajar en remoto... pero siendo esto asi quiza se amolda mejor a nuestra forma de trabajar... y si se le hacen unas pequeñas mejoras al leto la cosa puede ir de maravillas...
Yo te decia que la funcion CreateCursor() se debia crear en el servidor de leto porque si la creamos en el cliente, todos los datos, incluyendo lecturas y descartes de registros, han de pasar por el cable... si se crea en el servidos solo pasarian los datos SI validos... e incluso podrian generarse en un formato comprimido que al recibirse se descomprimiera... no se si me ha liado con esto ultimo


Te has superliado! ;)
Eso que dices respecto de que el servidor te pase o no datos válidos ya lo hace segun armes el filtro que le pongas a SET FILTER, de forma tal que se pueda optimizar, es decir, que el mismo servidor sea capaz de evaluar la expresion del filtro. Con esto ya no se transmiten registros inválidos. Respecto de crear un cursor... un ISAM es un cursor del lado del servidor. Si lo que pretendes es un cursor del lado del cliente, pues... te haces un COPY TO una tabla local, abres la tabla local via un RDD normal, tipo DBFCDX, y ya tienes tu bricolage, perdón, tu CreateCursor local. ;) Con eso vas a tener mas o menos la misma prestación que hacerlo con SQL, pero usando cosas que ya controlas bien. Si eso se me te dentro del cliente, implicará que tienes que aprender un paquete de comandos nuevos y únicos, aprender como funciona en el cliente Leto, y al final terminarás haciendo todo artesanalmente 'a mano'.
Esto NO DEBE ESTAR dentro de Leto, porque no tiene sentido complicar el cliente solo para hacer algo cuya utilidad es *muy* relativa, y que es muy facil de implementar.

Tal vez sea mas importante tener disponible en Leto un modelo de replicación de datos, con lo que si se podrían optimizar las consultas.

Si quieres programar en una WAN te recomiendo cambiar el chip y mudarte a SQL, o esperar que aumente el ancho de banda de internet en España.

Un saludo,

Carlos.
Carlos Mora
 
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: LetoDB

Postby cuatecatl82 » Thu Jan 14, 2010 4:21 pm

Hola a todos los colegas de este maravilloso Foro:

Despues de 3 meses de estar desconectado porke ya no tengo internet en el trabajo :oops: :evil: :roll: estoy de regreso para empezar a realizar pruebas para futuros proyectos y quisiera probar este RDD cliente servidor, he buscado en algunos lugares informacion como en el foro de Gabriel, ke por cierto es espectacular, y me he topado con que letodb funciona con Harbour y no con XHarbour, bueno, no con la version que trabajo desde algun tiempo (xHarbour 1.1.0 Intl), he bajado las fuentes para armar la lib y el servidor, pero hay funciones que no encuentra o k no existe en el compilador, habra algun archivo .bat por ahi que alguien me pueda facilitar o confirmarme si mi compilador es muy antiguo para poder crear el cliente y el servidor...

Estare en espera de respuestas..

Un Saludo desde Chiapas. tratare la manera de estar mas tiempo al tanto del foro para mantenerme actualizado.. :D :D :D
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 84 guests