que clase nos permite RECONECTAR mas simple?

que clase nos permite RECONECTAR mas simple?

Postby leandro » Wed Aug 16, 2023 3:49 pm

En este mundo cada vez mas globalizado e hiperconectado, aumenta mas la necesidad de alojar nuestras bases de datos en la nube (servidores remotos), nosotros hemos venido usando para realizar la conexión la herramienta ADO, pero últimamente varios usuarios nos han reportado problemas de conexión, ya que cae el internet así sea por unos unos segundos y la aplicación no logra hacer la reconexión. Mr. Rao publico una función para realizar la RECONEXIÓN, pero no es el todo eficiente.

Ya que vamos a ir migrando la aplicación de a poco a webview, queremos aprovechar y si es necesario cambiar la forma en que nos conectamos a las bases de datos de mysql/mariadb.

Que camino me recomiendan tomar, para hacer mas estable la conexión con la bases de datos?

De antemano gracias
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1676
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: que clase nos permite RECONECTAR mas simple?

Postby nageswaragunupudi » Fri Aug 18, 2023 3:21 pm

Mr. Rao publico una función para realizar la RECONEXIÓN,

I forgot.
For my own use and testing, can you reproduce that function here?
Now I need it for myself.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10635
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: que clase nos permite RECONECTAR mas simple?

Postby sysctrl2 » Fri Aug 18, 2023 4:34 pm

Mi experiencia me dice que al servidor hay que ir solo cuando necesitamos traer algo
o cuando vamos a modificar algo.
No es necesario tener abierta la conexión todo el tiempo
Sql no es DBF.

es importante comprender la parte (FRONTEND y BACKEND)

Code: Select all  Expand view

   WHILE ::oCon != NIL
      MSGRUN( "Un momento estoy Conectando con el Servidor", "Usuario", {|| ::oCon := Connection2():New() } )
   END

   IF ::oCon == NIL
      msgstop('No se pudo conectar con el servidor', ::cUser )
      RETURN NIL
   ENDIF

   * AQUI HAGO LA TAREA

   ::oCon:End() //muere la conexión

 


Saludos
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 1020
Joined: Mon Feb 05, 2007 7:15 pm

Re: que clase nos permite RECONECTAR mas simple?

Postby JoseAlvarez » Fri Aug 18, 2023 4:49 pm

sysctrl2 wrote:Mi experiencia me dice que al servidor hay que ir solo cuando necesitamos traer algo
o cuando vamos a modificar algo.
No es necesario tener abierta la conexión todo el tiempo
Sql no es DBF.

es importante comprender la parte (FRONTEND y BACKEND)

Code: Select all  Expand view

   WHILE ::oCon != NIL
      MSGRUN( "Un momento estoy Conectando con el Servidor", "Usuario", {|| ::oCon := Connection2():New() } )
   END

   IF ::oCon == NIL
      msgstop('No se pudo conectar con el servidor', ::cUser )
      RETURN NIL
   ENDIF

   * AQUI HAGO LA TAREA

   ::oCon:End() //muere la conexión

 


Saludos


jutamente hace meses abrí un hilo sobre este tema. Suguiero le den una mirada. Puede ser de utilidad para este.

https://forums.fivetechsupport.com/viewtopic.php?f=6&t=42582&sid=232698d30cafaad153bf5e3fd42312ff
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 795
Joined: Sun Nov 09, 2014 5:01 pm

Re: que clase nos permite RECONECTAR mas simple?

Postby gabo » Sat Aug 19, 2023 2:42 am

Leandro
Puedes usar un timer que este validando la conexion con el servidor.. depende de tu aplicacion y el proceso que necesites realizar..
por ejemplo yo detecto si durante un tiempo no uso uso el teclado o ratón abro una pantalla y pido una contraseña en esa pantalla pongo un timer que este validando la conexion con el servidor... esa solución para mi me funciona perfectamente
Un Saludo!
gabo
 
Posts: 128
Joined: Tue Jan 03, 2006 8:31 pm

Re: que clase nos permite RECONECTAR mas simple?

Postby leandro » Tue Aug 22, 2023 2:56 pm

Hola buenos días, gracias a todos por responder
I forgot.
For my own use and testing, can you reproduce that function here?
Now I need it for myself.


Mr. Rao esta es la función que nos proporcionaste.
Code: Select all  Expand view

Function AdoExecute( oCn, bAction ) //Aporte Mr.Rao Foro FW
Local uRet
if oCn:State == 0 .or. Empty( oCn:Properties( "Current Catalog" ):Value )
    oCn:Close()
    oCn:Open()
endif
if oCn:State > 0
    TRY
        uRet  := Eval( bAction, oCn )
    CATCH
        FW_ShowAdoError( oCn )
    END
else
    msginfo("Conexión Perdida, imposible recuperar","Error de conexión")
endif
//Usage:
//oRs      := AdoExecute( oMyConObject, { |oCn| FW_OpenRecordSet( oCn, cSql ) } )
//uResult  := AdoExecute( oMyConObject, { |oCn| oCn:Execute( cSql ) } )
return uRet
 


Cesar y José gracias por la ayuda.
Mi experiencia me dice que al servidor hay que ir solo cuando necesitamos traer algo
o cuando vamos a modificar algo.
No es necesario tener abierta la conexión todo el tiempo
Sql no es DBF.

es importante comprender la parte (FRONTEND y BACKEND


Con respecto al este aporte, es el tema de conexión y desconexión con un servidor remoto aumenta el tiempo de respuesta demasiado, ya que depende de muchos factores, en alguna oportunidad lo intente así, tomamos los tiempos, pero es realmente demorado en algunas ocasiones, lo mejor que nos ha funcionado de momento es mantener la aplicación en línea con el servidor. Pero no se si este problema sea de ADO, por eso nos surge la idea de cambiar de clase y podamos mejorar esos tiempos y reconexiones.

Gabo gracias por responder
Leandro
Puedes usar un timer que este validando la conexion con el servidor.. depende de tu aplicacion y el proceso que necesites realizar..

Si, de momento así lo tenemos, el problema es cuando la conexión se cae (realmente), así sea por algunos segundos. Luego le es imposible reconectarse.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1676
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: que clase nos permite RECONECTAR mas simple?

Postby sysctrl2 » Wed Aug 23, 2023 4:25 pm

No uso ADO,
siempre he usado dolphin y en versiones actuales uso las funciones de mariaDB nativo de fwh
y para agilizar el tráfico es mejor usar codigo nativo de SQL.
saludos.
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 1020
Joined: Mon Feb 05, 2007 7:15 pm

Re: que clase nos permite RECONECTAR mas simple?

Postby Armando » Wed Aug 23, 2023 5:13 pm

Leandro, amigos:

Me parece haber visto un comando para determinar el tiempo que la conexión debe permanecer activa
antes de desconectarse.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3227
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot], SantaCroya and 51 guests