Daniel - Cambios para tDolphin

Daniel - Cambios para tDolphin

Postby carlos vargas » Sun Jan 05, 2014 6: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: Select all  Expand view

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

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

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

  METHOD NetErr() INLINE ::lError
 


salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1683
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Daniel - Cambios para tDolphin

Postby MGA » Fri Feb 28, 2014 6: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

FWH18.02
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1234
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Daniel - Cambios para tDolphin

Postby carlos vargas » Fri Feb 28, 2014 7: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: Select all  Expand view

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

PROCEDURE Main_ProbarConexion()

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

RETURN

salu2
carlos
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1683
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Daniel - Cambios para tDolphin

Postby MGA » Fri Feb 28, 2014 8:14 pm

Carlos,

Muito obrigado :D

simplesmente fantástico.
ubiratanmga@gmail.com

FWH18.02
FWPPC
Harbour/xHarbour
xMate
Pelles´C
TDolphin
MGA
 
Posts: 1234
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 82 guests