Daniel - Cambios para tDolphin
Posted: 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)
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
aca me parece que falta cambiar ::lError
Agregado el tdolphinsrv
salu2
carlos vargas
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