FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Daniel - Cambios para tDolphin
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Daniel - Cambios para tDolphin
Posted: Sun Jan 05, 2014 06:53 PM
Haciendo pruebas para verificar que pasa con tdolphin cuando hay cortes, esto es lo que me sucedio.

Cuando tdolphin perdía la conexión con el servidor mysql (yo cortaba la conexión de red para la prueba) se lanzaba un GPF (trabajo me costo ubicar el problema)
y esto es lo que descubri:

aca hay se lanzaba un error de FOR EACH Anidado, cambie el codigo validando si es un array (aArray)
Code (fw): Select all Collapse
FUNCTION SqlStringFromArray( aArray )

   LOCAL cItem, cString := ""

   IF HB_IsArray( aArray ) .and. Len( aArray ) > 0
      FOR EACH cItem IN aArray
         cString += D_LowerCase( cItem ) + ", "
      NEXT
      cString := Left( cString, Len( cString ) - 2 )
   ENDIF

RETURN cString



acá quería hacer algo como .and. ::hMysql > 0 pero esto es un puntero
osea validar que la reconexion fue correcta, para proceder a reasignar los querys, pero no halle mejor cosa que ::lError, por favor valida si es la mejor opcion
Code (fw): Select all Collapse
METHOD ReConnect() CLASS TDolphinSrv
   LOCAL oQry

   ::hMysql := ::Connect()

   IF HB_IsArray( ::aQueries ) .and. !::lError  
      FOR EACH oQry IN ::aQueries
         oQry:oServer := Self
         oQry:Refresh()
      NEXT
   ENDIF

RETURN NIL


aca me parece que falta cambiar ::lError
Code (fw): Select all Collapse
METHOD LoadQuery( lBuildData ) CLASS TDolphinQry
   ...
   IF ! ( ::hResult == NIL )
      ::aStructure := MySqlResultStructure( ::hResult, lCaseSen, D_LogicalValue() )
      ::nRecCount  := MySqlNumRows( ::hResult )
      ::nRecNo     := Max( 1, ::nRecNo )
      ::nFCount    := Len( ::aStructure )

      ::oServer:lError := .F.  //NUEVO


Agregado el tdolphinsrv
Code (fw): Select all Collapse
  METHOD NetErr() INLINE ::lError


salu2
carlos vargas
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: Daniel - Cambios para tDolphin
Posted: Fri Feb 28, 2014 06:13 PM

Carlos,

Parabéns pelas alterações.

Percebi que as vezes utilizado TDOLPHIN(SERVIDOR LOCAL) o sistema para de responder, gerando um erro do WINDOWS. Você já percebeu isso?

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Daniel - Cambios para tDolphin
Posted: Fri Feb 28, 2014 07:37 PM
realmente no ha entrado a producción la appe, aun esta en desarrollo, pero para evitar esto es necesario hacer un timer que cada 30 o 60 segundos verifique la conexion, y en caso de caída re-conecte.
Code (fw): Select all Collapse
PROCEDURE Main()
   LOCAL oBrush

   PUBLIC oFont, oFontD
   PUBLIC oMainWnd, oMsgBar
   PUBLIC oServer, oTimer
   PUBLIC oSesion, oVernam

   DEFINE FONT oFont  NAME GetDefaultFontName() SIZE 0, GetDefaultFontHeight()
   DEFINE FONT oFontD NAME "TAHOMA"             SIZE 0, GetDefaultFontHeight() - 1

   DEFINE BRUSH oBrush NAME "BM_FONDO"

   oVernam := TVernam():New( LOGIN_KEY )
   oSesion := TSesion():New()

   IF !Main_Configurar()
      RETURN
   ENDIF

   IF !PermitirAcceso()
      Main_Cerrar()
      RETURN
   ENDIF

   DEFINE WINDOW oMainWnd ;
      FROM  1, 1 TO 600, 800 ;
      TITLE StrFormat( "Sistema de control de prestamos. - versión 1.0a, [%1]" , oSesion:InfoConexion() );
      BRUSH oBrush //COLOR CLR_BLACK, CLR_MYCELESTE1

      oMainWnd:SetIcon( GetIcon() )
      oMainWnd:SetFont( oFont     )

      DEFINE TIMER oTimer OF oMainWnd INTERVAL 60000 ACTION Main_ProbarConexion()

      DEFINE MSGBAR oMsgBar OF oMainWnd PROMPT "KDSoft(c), Managua, Nicaragua 2014." 2010 FONT oFont NOINSET

      DEFINE MSGITEM OF oMsgBar PROMPT oSesion:GetDateChar()   SIZE 120 COLOR CLR_MYAZUL1
      DEFINE MSGITEM OF oMsgBar PROMPT oSesion:GetIdeUsuario() SIZE 080 COLOR CLR_MYAZUL1
      DEFINE MSGITEM OF oMsgBar PROMPT oSesion:GetTipUsuario() SIZE 100 COLOR CLR_MYAZUL1
      DEFINE MSGITEM OF oMsgBar PROMPT oSesion:GetNomCiudad()  SIZE 150 COLOR CLR_MYAZUL1

      oMsgBar:aItems[ 03 ]:bAction := {|| Usuarios_CambiarClave() }
      oMsgBar:KeybOn()

   ACTIVATE WINDOW oMainWnd MAXIMIZED ON INIT (oTimer:Activate(), MostrarMenu() )  VALID MsgNoYes( "Desea salir de la aplicación?" )

   oBrush:END()

   Main_Cerrar()

   RELEASE oServer
   RELEASE oFont, oFontD
   RELEASE oMainWnd, oMsgBar
   RELEASE oSesion, oVernam

RETURN


Code (fw): Select all Collapse
PROCEDURE Main_ProbarConexion()

   IF !oServer:Execute( "SET @dummy=0" )
      oServer:ReConnect()
   END

RETURN

salu2
carlos
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: Daniel - Cambios para tDolphin
Posted: Fri Feb 28, 2014 08:14 PM

Carlos,

Muito obrigado :D

simplesmente fantástico.

ubiratanmga@gmail.com

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

Continue the discussion