Daniel - Cambios para tDolphin

Post Reply
User avatar
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Daniel - Cambios para tDolphin

Post by carlos vargas »

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


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


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


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


  METHOD NetErr() INLINE ::lError
 


salu2
carlos vargas
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
MGA
Posts: 1258
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá
Contact:

Re: Daniel - Cambios para tDolphin

Post by MGA »

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
User avatar
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: Daniel - Cambios para tDolphin

Post by carlos vargas »

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


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


PROCEDURE Main_ProbarConexion()

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

RETURN

salu2
carlos
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
MGA
Posts: 1258
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá
Contact:

Re: Daniel - Cambios para tDolphin

Post by MGA »

Carlos,

Muito obrigado :D

simplesmente fantástico.
ubiratanmga@gmail.com

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