TDOLPHIN Conexion a Servidor MySQL

Post Reply
User avatar
rterraz
Posts: 141
Joined: Wed Nov 08, 2006 11:44 pm
Location: Argentina

TDOLPHIN Conexion a Servidor MySQL

Post by rterraz »

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
User avatar
pablovidal
Posts: 398
Joined: Thu Oct 06, 2005 10:15 pm
Location: Republica Dominicana
Contact:

Re: TDOLPHIN Conexion a Servidor MySQL

Post by pablovidal »

Code: Select all

#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
------------------------------------------------------
*/
MGA
Posts: 1219
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá
Contact:

Re: TDOLPHIN Conexion a Servidor MySQL

Post by MGA »

pablo, como usar esta classe?
ubiratanmga@gmail.com

FWH17.04
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
User avatar
pablovidal
Posts: 398
Joined: Thu Oct 06, 2005 10:15 pm
Location: Republica Dominicana
Contact:

Re: TDOLPHIN Conexion a Servidor MySQL

Post by pablovidal »

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: Select all

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
------------------------------------------------------
*/
MGA
Posts: 1219
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá
Contact:

Re: TDOLPHIN Conexion a Servidor MySQL

Post by MGA »

Obrigado Pablo.
ubiratanmga@gmail.com

FWH17.04
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
Post Reply