FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TDOLPHIN Conexion a Servidor MySQL
Posts: 182
Joined: Wed Nov 08, 2006 11:44 PM
TDOLPHIN Conexion a Servidor MySQL
Posted: Mon Mar 02, 2015 12:30 PM

Hola Amigos...
Me gustaria que alguien que tenga experiencia en el uso de Tdolphin para conectar FWH con MySql me contestara esta pregunta...
Tengo un sistema que recibe consultas para una base MySql en forma permanente a traves de un Socket.
Cuando el sistema recibe cada peticion se conecta a database MySql a traves de TDOLPHIN y al terminar la consulta cierra la conexion con el servidor.
MI PREGUNTA: Es posible establecer la conexion con el servidor MySql al iniciar el programa y MANTENER ABIERTA ESTA CONEXION para ir evacuando las consultas sin tener que abrir y cerrar permanentemente la conexion y cerrarla solamente al terminar la ejecucion del programa ??????
Agradecere cualquier ayuda que puedan brindarme
MUchas gracias

Posts: 401
Joined: Thu Oct 06, 2005 10:15 PM
Re: TDOLPHIN Conexion a Servidor MySQL
Posted: Mon Mar 02, 2015 12:49 PM
Code (fw): Select all Collapse
#include "inkey.ch"
#include "setcurs.ch"
#include "hbclass.ch"
#include "set.ch"
#include "box.ch"

Class tPoolSql

 Data aConex   Init {}
 Data nPool    Init 25
 Data nMysql   Init 0
 Data nActivas  Init 0
  
 Data MyServer
 Data MyUser
 Data MyPass
 Data MyPort
 Data MyDBase

 Method New()
 Method Conexion()
 Method Liberar( nPool ) INLINE ( ( ::aConex[ nPool ][ "activa" ] := .F. ), ( ::nActivas -- ) )
 Method KeepAlive()

EndClass

Method New() Class tPoolSql
Local nTT := 1

 
  ::ReadIni() 
  ::aConex := Array( ::nPool )

  For nTT := 1 to ::nPool
   @ 00,00 Say "Conexiones a la Base de datos " + AllTrim( cStr( nTT ) ) + "/" + AllTrim( cStr( ::nPool ) )
   ::aConex[ nTT ] := {=>} 
   ::aConex[ nTT ][ "oMysql" ] := TDolphinSrv():New( ::MyServer, ::MyUser, ::MyPass, ::MyPort, ( 65536 + 131072 ), ::MyDBase )
   ::aConex[ nTT ][ "activa" ] := .F.
   ::aConex[ nTT ][ "nPool"  ] := nTT
  Next nTT

Return Self

Method Conexion Class tPoolSql
Local hPool
Local nTT := 0

 While .T.
  nTT++
  If nTT > ::nPool
   nTT := 1
  EndIf

  If !::aConex[ nTT ][ "activa" ]
   ::aConex[ nTT ][ "activa" ] := .T.   
   ::nActivas ++
  
   BEGIN SEQUENCE  WITH {|| Break() }
     ::aConex[ nTT ][ "oMysql" ]:Ping()
   RECOVER
     ::aConex[ nTT ][ "oMysql" ] := TDolphinSrv():New( ::MyServer, ::MyUser, ::MyPass, ::MyPort, ( 65536 + 131072 ), ::MyDBase )
   END SEQUENCE

    hPool := ::aConex[ nTT ]

   Exit

  EndIf
 
 Enddo

Return( hPool )


Method KeepAlive() Class tPoolSql
Local hPool
Local nTT := 0
 ::lKeepAlive := .T.
 For nTT := 1 to ::nPool
  If !::aConex[ nTT ][ "activa" ]
    ::aConex[ nTT ][ "activa" ] := .T.
   BEGIN SEQUENCE WITH {|| Break() }
    ::aConex[ nTT ][ "oMysql" ]:Query("select 1")
   RECOVER
    ::aConex[ nTT ][ "oMysql" ] := TDolphinSrv():New( ::MyServer, ::MyUser, ::MyPass, ::MyPort, ( 65536 + 131072 ), ::MyDBase )
   END SEQUENCE
    ::aConex[ nTT ][ "activa" ] := .F.
    Inkey(0.01)
  EndIf
 Next nTT
::lKeepAlive := .F.
Return Nil
Saludos,



Pablo Alberto Vidal

/*

------------------------------------------------------

Harbour 3.2.0, Fivewin 17.02, BCC7

------------------------------------------------------

*/
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: TDOLPHIN Conexion a Servidor MySQL
Posted: Mon Mar 02, 2015 04:29 PM

pablo, como usar esta classe?

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 401
Joined: Thu Oct 06, 2005 10:15 PM
Re: TDOLPHIN Conexion a Servidor MySQL
Posted: Mon Mar 02, 2015 07:35 PM
Este es un Pequeño ejemplo,
esto esta diseñado para trabajar con multihilos y es parte
de un servicio para conexiones por sockets.

Code (fw): Select all Collapse
Function Main()
Local oPoolSql := tPoolSql():New()
Local hMySql := oPoolSql:Conexion() 
Local oMysql := hMysql["oMysql"]

...

oPoolSql:Liberar( hMysql["nPool"] )
Saludos,



Pablo Alberto Vidal

/*

------------------------------------------------------

Harbour 3.2.0, Fivewin 17.02, BCC7

------------------------------------------------------

*/
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: TDOLPHIN Conexion a Servidor MySQL
Posted: Mon Mar 02, 2015 07:55 PM

Obrigado Pablo.

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin

Continue the discussion