Page 1 of 1

Consejos sobre LETODB, SQLWin y AdoRDD

PostPosted: Tue Oct 20, 2009 12:32 pm
by alvaro533
Buenos días,

He estado haciendo unas pruebas con Letodb y va bastante bien, pero antes de poner el programa en producción, que no me corre mucha prisa, me gustaría pediros consejo. Me gustaría saber si alguien está usando Letodb, el tiempo que lleva usándolo, el número de usuarios concurrentes, el número de registros de las bases de datos, la velocidad y posibles incidencias o errores que hayan tenido, etc.

El programa donde lo voy a poner es un pequeño programa de facturación y gestión comercial, que hice hace 20 años en Clipper verano 87 y ha estado funcionando a diario desde entonces. Actualmente está en FWH 8.06 y Harbour 1.0.1. Las dimensiones serían: 8 usuarios (Windows XP) en una red local con Windows 2003 server. Unas 30 tablas DBFCDX, la mayor con 80.000 registros y 28 MB.

El usar Letodb es para poder permitir que otros usuarios se conecten desde fuera a través de una ADSL. Estas conexiones serían esporádicas y principalmente consultas. Preferiría no usar VNC o Terminal Server.

He estado viendo en el forum otras opciones como SQLWin, AdoRDD y Tmysql.

¿Algún consejo al respecto? Veo que los últimos post sobre SQLWin y AdoRDD tienen ya algunos meses. ¿Las últimas versiones son estables y completamente funcionales? ¿Es demasiado complicado para lo que necesito?

Muchas gracias y un saludo,

Alvaro

Re: Consejos sobre LETODB, SQLWin y AdoRDD

PostPosted: Tue Oct 20, 2009 4:15 pm
by Armando
Alvaro:

La realidad es que no conozco LetoDb y menos aún SQLRDD por lo que no podría darte una opinión válida.

La razón de mi respuesta es mencionarte otra opción para tu aplicación; usar ADO y MySql o SQLWin ahí sí puedo decirte que es muy pero muy estable la aplicación, tengo una aplicación con casi dos años de funcionamiento y cero problemas. Mi cliente la usa en forma local y remota vía ADSL tambien.

Si te interesa, echale un ojo a este blog http://sqlcmd.blogspot.com/

Saludos

Re: Consejos sobre LETODB, SQLWin y AdoRDD

PostPosted: Tue Oct 20, 2009 4:49 pm
by alvaro533
Gracias Armando, muy interesante tu blog. Mientras escribo esto me estoy descargando mysql. Ya te contaré mis progresos.

Alvaro

Re: Consejos sobre LETODB, SQLWin y AdoRDD

PostPosted: Wed Oct 21, 2009 11:55 am
by alvaro533
Hola Armando, ya tengo MySQL instalado, he cargado algunas tablas grandes y estoy haciendo algunas pruebas. Tu blog es de gran utilidad. Las pruebas de velocidad van bien, en principio mejor que con letodb. He visto que las tablas ocupan más en espacio en disco que las DBF.

Tengo pensado hacer una clase similar a Tdatabase, para usar en los diálogos cuando se edita un registro, al menos con los métodos blank(), load(), save() y modified(). Como las tablas en MySQL las creo a partir de código, tengo una array en el código con el nombre de los campos, el tipo y la longitud, similar a la aStru de dbcreate. De tal forma puedo generar un buffer para los registros usando una clase similar a TPublic. ¿Hay algo ya hecho y me ahorro el trabajo?

Creo que con un par de clases sencillas y algunas funciones, se puede usar mysql sin depender de otras clases o librerías más complejas, y el esfuerzo de aprender sql siempre puede venir bien en el futuro.

Con los ejemplos de tu blog ya he creado algunas funciones para no tener que repetir tanto código, como por ejemplo las que copio a continuación. Lo mismo para crear tablas. También voy a modificar la clase txbrowse para añadir automáticamente estas líneas y algunos pequeños campos más: (dime si estoy repitiendo trabajo que ya está hecho).

Code: Select all  Expand view

oBrw:bGoTop := { ||  IF( ! oRsUni:BOF() .AND. ! oRsUni:EOF(), oRsUni:MoveFirst(), ) }
oBrw:bGoBottom := { ||  IF( ! oRsUni:BOF() .AND. ! oRsUni:EOF(), oRsUni:MoveLast(), ) }
oBrw:bBof := { ||  oRsUni:BOF() }
oBrw:bEof := { ||  oRsUni:EOF() }
oBrw:bBookMark:= { | uBm | IF( oRsUni:BOF() .AND. oRsUni:EOF() , 0, IF( uBm == NIL, oRsUni:BookMark, oRsUni:BookMark := uBm ) ) }
oBrw:bKeyNo := { | n | IF( oRsUni:BOF() .AND. oRsUni:EOF(), 0, IF( n == NIL, oRsUni:AbsolutePosition, oRsUni:AbsolutePosition := n ) ) }
oBrw:bKeyCount := { ||  oRsUni:RecordCount() }
 



Code: Select all  Expand view

// -----------------------------------------------------------------------------------------------//
function abre_rs(oCon,cSele,cTabla)
local oRs,oError

TRY
oRs := TOleAuto():New("adodb.recordset")
CATCH oError
MsgStop( "No se ha podido crear el RECORDSET de "+cTabla+" !")
ShowError(oError)
oRs := NIL
return nil
END

oRs:CursorLocation := adUseClient
oRs:LockType := adLockOptimistic
oRs:CursorType := adOpenDynamic
oRs:Source := "SELECT "+cSele
oRs:ActiveConnection(oCon)

TRY
oRs:Open()
CATCH oError
MsgStop( "No se ha podido abrir el RECORDSET de "+cTabla+" !")
ShowError(oError)
return nil
END

IF oRs:BOF() .AND. oRs:EOF()
ELSE
oRs:MoveFirst()
ENDIF

return oRs

// -----------------------------------------------------------------------------------------------//
function cierra_rs(oRs)
IF oRs <> NIL
IF oRs:State() = adStateOpen
oRs:Close()
ENDIF
ENDIF

return nil
 


Un saludo

Alvaro

Re: Consejos sobre LETODB, SQLWin y AdoRDD

PostPosted: Wed Oct 21, 2009 12:36 pm
by Ariel
Alvaro,

Tambien tienes TMYSQL, que es una contribucion de xharbour, y maneja muy parecido el objeto a la Database, logicamente deberemos cambiar el chip con estos motores, porque sino x mas que instales el SUPER motor de BD y el SUPER servidor, si sigues pensando como en dbfs, estaras tirando de un carro en vez de manejarlo.

Lo interesante de la tmysql, es que estan los fuentes disponibles y no dependes de terceros para su actualizacion. Mis 2 granitos.

Salu2, Ariel

Re: Consejos sobre LETODB, SQLWin y AdoRDD

PostPosted: Wed Oct 21, 2009 2:11 pm
by Armando
Alvaro:

:shock: Me parece que vas muy rápido.

Como has leido en mi blog, poco código hay sobre ADO y MySql con [x]Harbour (O pocos han querido publicarlo) sin embargo tampoco es imprescindible, aunque evitar la repetición de código siempre va bien.

Me uno al consejo de Ariel, debes cambiar el chip (Es lo más dificil), ya no pienses en DBF y para usar ADO solo necesitas xHarbour nada de LIBs externas.

Saludos

Re: Consejos sobre LETODB, SQLWin y AdoRDD

PostPosted: Wed Oct 21, 2009 8:10 pm
by Adolfo
Alvaro..

Hace tiempo ya , hize una clase que emula la Tdatabase para el uso de ADO con cualquier DB.

Personalmente la uso, y el codigo fuente esta disponible "por ahi", si buscas en el foro encontraras los links de descarga de ella.

Existe MUCHO material de ADO en la web, y aunque al principio es dificil de dominar la combinacion LOCKTYPE, CURSORLOCATION y CURSORTYPE... es muy rapida y solo necesitas del conector o driver ODBC correspondiente a la DB que usaras.

Desde Chile
Adolfo

PD : Si no la encuentras la busco y la resubo.. ahora toy' un poko atareado.... Envia MP

Re: Consejos sobre LETODB, SQLWin y AdoRDD

PostPosted: Wed Oct 21, 2009 9:48 pm
by Armando
Adolfo:

Tienes la boca llena de razón y me disculpo por eso, eres de los pocos que se han desprendido de su código, en su momento evalue tu código y me pareció excelente sin embargo me fuí directamente por ADO puro y comandos SQL con la idea de cortarme el cordón umblical a las DBFs.

Seria excelente que subieras nuevamente tu clase para tenerla en mente, seguramente ahora esta más actualizada y robusta

Un abrazo

Re: Consejos sobre LETODB, SQLWin y AdoRDD

PostPosted: Fri Oct 23, 2009 9:29 am
by alvaro533
Hola Adolfo,

El link que he encontrado en el foro está roto, por favor, cuando puedas danos el link de la clase ADOBase.

Muchas gracias.

Alvaro

Re: Consejos sobre LETODB, SQLWin y AdoRDD

PostPosted: Fri Oct 23, 2009 11:32 am
by Adolfo
Alvaro..

Apenas tenga tiempo reedito el ejemplo y la resubo.

Le faltan unos comentarios a la clase, y ordenarla.. ya que hasta el momento .. solo yo la entiendo.. ja ja ja jaaa

En el transcurso del dia la subo, y aprovecho de levantar el servidor Mysql que tengo de prueba....

Eso si.. funciona solamente con el cliente MYSQL ODBC 5.1
Les dejare el link para descargarlo.

Adolfo