FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour LetoDB
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
LetoDB
Posted: Mon Jul 14, 2008 10:25 PM

dblizama,
Gracias por tu ayuda, pero no funciono este es el log de las prueba, cambiando slash "/", "\" con y sin el, no funciona de ninguna manera
mira el .log

07/14/08 17:18:36: Leto DB Server has been started.
07/14/08 17:21:08: Open error (15-1002): f:\letodb\data//BASES
07/14/08 17:22:06: Open error (15-1002): f:\letodb\data/BASES
07/14/08 17:23:04: Open error (15-1002): f:\letodb\data\BASES

gracias

sabe que sera
salu2
paco

:-(

____________________

Paco
Posts: 326
Joined: Sun Oct 09, 2005 05:22 PM
LetoDB
Posted: Tue Jul 15, 2008 02:01 AM
Comento los avances realizados en tiempo libre con un programa de prueba y una tabla dbf y en modo local.

1. Ejecutar LetoDB
2. Ejecutar Manage con la IP del equipo, desconozco el motivo pero 'localhost' responde solo cuando est谩 de buenas.

Los par谩metros de LetoDB.Ini son tomado por LetoDB.Exe y no por la aplicaci贸n por tanto estos dos archivos deben estar juntos, digo esto porque cre铆 que eran tomados por la aplicaci贸n.

Los datos pueden estar en cualquier unidad y ruta (C:, D:, H:, etc.) y la aplicaci贸n en otra, lo importante es que LetoDB vea la ruta al iniciar (DataPath = H:\Hello).

Lo que no he podido es habilitarlo como un servicio o alojarlo como servidor y por 煤ltimo veo que las tablas son usadas en modo exclusivo, si las tengo abiertas con otra aplicaci贸n simplemente no responde protesta enviando mensajes que no entiendo pero que quedan guardados el LetoDB.Log, normalmente es porque no puede abrir las tablas.

Por hoy hasta aqu铆, ya ver茅 si hay mas...

#Include "FiveWin.Ch"

FUNCTION Main()
   LOCAL cServer:="//192.168.1.200:2812/", nI

   REQUEST Leto
   RDDSetDefault("Leto")
   IF Leto_Connect(cServer)==-1
      MsgAlert("No se puede establecer la conexi贸n.","Verifique!")
      RETURN (NIL)
   ENDIF

   DBUseArea(.T.,,cServer+"Dat2008/Personal","Personal")
   IF !Empty(OrdName(1))         // Esto porque parece que no hay SET AUTOPEN
      Personal->(DbSetOrder(1))
   ENDIF

   IF Personal->(DbSeek("0275"))
      MsgInfo(Personal->NomCom)
   ELSE
      MsgInfo("No lo encontr茅!")
   ENDIF
   Personal->(DbCloseArea())

RETURN (NIL)
Posts: 15
Joined: Fri Jul 11, 2008 03:29 AM
Abrir compartido
Posted: Tue Jul 15, 2008 02:27 AM

Alfredo:

El quinto parametro de la funcion dbusearea() es un valor logico que indica si se permite o no la apertura compartida de tablas, veo que en tu codigo no lo usas, queda entonces expuesto a lo que diga SET EXCLUSIVE que tampoco lo usas. Por lo tanto la apertura es No Compartida. Creo que por ahi va el error...

Saludos

Posts: 15
Joined: Fri Jul 11, 2008 03:29 AM
LetoDB
Posted: Tue Jul 15, 2008 02:40 AM

Paco:

Prueba dos cosas y cuentanos...

1.- Ejecutar todo desde el disco local C:

2.- Crear una tabla desde el codigo.

Saludos, saldremos adelante...

Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
LetoDB
Posted: Tue Jul 15, 2008 05:47 AM

El parametro Shared de dbUseArea, sirve para indicarle a leto el modo de apertura, pero solo tiene ambito dentro del servidor. Es decir si le indicamos que queremos apertura compartida, nos permitira usar la misma tabla desde diferentes puntos(clientes, programas, etc), pero accediendo atraves del servidor.

LetoDB abre en modo exclusivo los ficheros, lo que imposibilita el uso de los dbf desde una aplicaci贸n externa.

Saludos desde Mallorca
Biel Maim贸
http://bielsys.blogspot.com/
Posts: 581
Joined: Tue Oct 11, 2005 11:28 AM
LetoDB
Posted: Tue Jul 15, 2008 11:41 AM

jblizama,

Gracias por la respuesta. Sigo mirando los resultados de los testes...

Saludos,

Kleyber Derick



FWH / xHb / xDevStudio / SQLLIB
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
LetoDB
Posted: Tue Jul 15, 2008 06:18 PM
jblizama,
Hice lo que me sugeriste, y no funiono, sigo sin entender porque si me marca que establece la conexion, pero no hace nada mas.
aqui dejo el .prg esta muy basico y corto, si alguien lo puede probar a ver si le funciona, todo lo hago desde el disco local c

#Include "Fivewin.ch"

FUNCTION Main()
LOCAL cServer := '//localhost:2812/'
LOCAL aDbf := {}

REQUEST LETO
RDDSETDEFAULT("LETO")

IF Leto_Connect(cServer)==-1
msginfo("no hay conexion con el servidor "+cServer)
return NIL
ELSE
msginfo("Conexion establecida con el servidor "+cServer)
ENDIF

aDbf := {{"campo1", "N", 3, 0},;
{"campo2", "C", 15, 0},;
{"fecha" , "D", 8, 0}}

DBCreate( cServer+'prueba.dbf', aDbf )
RETURN NIL

[url=http://img378.imageshack.us/my.php?image=letodb4cj9.jpg]


salu2
paco
____________________

Paco
Posts: 72
Joined: Tue Sep 11, 2007 03:51 PM
LetoDB
Posted: Tue Jul 15, 2008 06:41 PM
Biel,
A ver si entiendo... significa esto que si abro una .dbf con Leto, aunque sea en modo compartido, ya no la puedo abrir con por ejemplos un programa clipper.... ????
Creo que esta caracteristica si la permite ADS

Saludos
Biel EA6DD wrote:El parametro Shared de dbUseArea, sirve para indicarle a leto el modo de apertura, pero solo tiene ambito dentro del servidor. Es decir si le indicamos que queremos apertura compartida, nos permitira usar la misma tabla desde diferentes puntos(clientes, programas, etc), pero accediendo atraves del servidor.

LetoDB abre en modo exclusivo los ficheros, lo que imposibilita el uso de los dbf desde una aplicaci贸n externa.
Posts: 15
Joined: Fri Jul 11, 2008 03:29 AM
Ayuda
Posted: Tue Jul 15, 2008 08:03 PM

Paco.

Para probar tu codigo, le pedi el computador a mi hijo, despues de una mirada de "donde la viste", me lo presto..., instale todo desde cero, incluido leto..., copy & paste para el codigo de el blog de Biel, al compilar, sorpresa... se conectaba pero no hacia nada, es decir, no creaba la tabla de datos...(En mi pais hay una exclamacion para esto...CHUUUUUUUU...)

Despues de unos intentos fallidos, elimine los espacios en blanco que hay entre las claves y sus valores para en el archivo letodb.ini, stop para letodb.exe y reinicio nuevamente, ejecucion de tu codigo y FUNCIONA....

Parece ser que letodb no quiere estos espacios en su archivo ini...

Salud...

Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
LetoDB
Posted: Tue Jul 15, 2008 08:49 PM

jblizama,

Pero estara peleado conmigo el letodb? hice los cambios como tu y nada no funciona, me pasas la .lib que tu usas, con que versionde harbour enlazas?
gracias
paco

____________________

Paco
Posts: 15
Joined: Fri Jul 11, 2008 03:29 AM
Ayuda
Posted: Tue Jul 15, 2008 10:26 PM

Paco:

Uso la ultima MiniGUI Extend, y el archivo zip de el Blog de Biel donde estan comprimidos los tres archivos letodb.exe, rddleto.lib, manage.exe

1.- Crear una carpeta C:\letodb
2.- Descomprimir letodb.zip en la carpeta creada.
3.- Copiar el archivo rddleto.lib en C:\MiniGUI\Harbour\Lib
4.- Modificar en brmake.ini para agregar la librer铆a rddleto.lib
5.- Crear la subcarpeta C:\letodb\data
6.- Crear el archivo letodb.ini en C:\letodb con lo siguiente:

Port=2812
DataPath=c:/letodb/data
Logfile="letodb.log"
Default_Driver=CDX

7.- Crear una carpeta C:\letoprg
8.- Crear un archivo leto.prg en esa carpeta, y copia el c贸digo de prueba.
9.- Ejecutar el archivo letodb.exe
10.- Compilar y Ejecutar el archivo leto.prg

Salud

Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
LetoDB
Posted: Wed Jul 16, 2008 05:56 AM

Paco, vuelve a descargarte letodb.zip de mi blog, hay una mejora con el manejo de path y fichero ini. Ademas le he a帽adido que registre en el fichero de log, el datapath y el puerto que esta usando el server.

Yo he probado el codigo y el ini tal cual los pones aqui, y ha funcionado correctamente.

Saludos desde Mallorca
Biel Maim贸
http://bielsys.blogspot.com/
Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
LetoDB
Posted: Wed Jul 16, 2008 06:05 AM
Hola Antonio
En principio si, significa justo lo que has entendido. Supongo que en el momento de dise帽o se deicido como una medida preventiva, para evitar inconsistencia en los datos e indices.
ADS por defecto tampoco permite el uso compartido con otras aplicaciones, pero dispone de una funcion AdsLocking(.f.) que desbloquea los dbfs y permite su uso por otras aplicaciones.

Este es un proyecto opensource, podeis hacer vuestro aportaciones y sugerencias en la lista de programadores.

Antonio Martinez wrote:Biel,
A ver si entiendo... significa esto que si abro una .dbf con Leto, aunque sea en modo compartido, ya no la puedo abrir con por ejemplos un programa clipper.... ????
Creo que esta caracteristica si la permite ADS
Saludos desde Mallorca
Biel Maim贸
http://bielsys.blogspot.com/
Posts: 383
Joined: Tue Oct 11, 2005 01:01 PM
LetoDB
Posted: Wed Jul 16, 2008 01:23 PM
Francisco Horta wrote:jblizama,
Hice lo que me sugeriste, y no funiono, sigo sin entender porque si me marca que establece la conexion, pero no hace nada mas.
aqui dejo el .prg esta muy basico y corto, si alguien lo puede probar a ver si le funciona, todo lo hago desde el disco local c

#Include "Fivewin.ch"

FUNCTION Main()
LOCAL cServer := '//localhost:2812/'
LOCAL aDbf := {}

REQUEST LETO
RDDSETDEFAULT("LETO")

IF Leto_Connect(cServer)==-1
msginfo("no hay conexion con el servidor "+cServer)
return NIL
ELSE
msginfo("Conexion establecida con el servidor "+cServer)
ENDIF

aDbf := {{"campo1", "N", 3, 0},;
{"campo2", "C", 15, 0},;
{"fecha" , "D", 8, 0}}

DBCreate( cServer+'prueba.dbf', aDbf )
RETURN NIL

[url=http://img378.imageshack.us/my.php?image=letodb4cj9.jpg]


salu2
paco



paco: yo recien logr茅 hacerlo funcionar, y te digo como:


cre茅 este archivo ini en la carpeta c:\letodb --> letodb.ini

Port=2812
DataPath=c:\letodb\dati
Logfile="letodb.log"
Default_Driver=CDX

ejecut茅 letodb.exe que se encuentra en la carpeta c:\letodb






FUNCTION LetoDbProva()

   LOCAL cServer:="//127.0.0.1:2812/"

   REQUEST Leto
   RDDSetDefault("Leto")
   IF Leto_Connect(cServer)==-1
      MsgAlert("No se puede establecer la conexi贸n.","Verifique!")
      RETURN (NIL)
   ENDIF

   DBUseArea(.T.,, cServer + "categ.d07", "categ2" )

    msginfo( categ2->( reccount() ) )
   categ2->( browse() )

   categ2->( DbCloseArea() )

RETURN (NIL)



hasta ahi mis pruebas.

como hay que hacer para que letodb abra las bases de datos en modo compartido?

otra cosa, vi que cuando abre un indice que tiene funciones al interno, obviamente da error... una mala practica que hice cuando comenc茅 a realizar esta aplicaci贸n hace 7 a帽os, pero que me complicar铆a cambiar ahora. (se que no tiene soluci贸n, mas que cambiar el modo que creo los indices)

Saludos.
Pedro Gonzalez
Posts: 383
Joined: Tue Oct 11, 2005 01:01 PM
LetoDB
Posted: Wed Jul 16, 2008 01:38 PM

mirando server.prg en esta funcion: hs_opentable()

est脿 puesto en modo fijo el parametro para abrir en modo exlusivo las bases de datos, creo que ahi esta la cosa para abrirlos en modo compartido.

cambiando esta linea, las abre en modo compartido (no se que otras consecuencias puede tener...)

     dbUseArea( .F.,Iif(nDriver==1,"DBFNTX",Nil),oApp:DataPath+cName,cRealAlias,.T.,.F.,Iif(!Empty(cdp),cdp,Nil) )

saludos

Pedro Gonzalez