TDolphin - bOnError

TDolphin - bOnError

Postby MarioG » Fri Apr 20, 2012 3:20 pm

Daniel;
hago lo siguiente:
Code: Select all  Expand view
  CONNECT oServer HOST     shIni["MARIADB"]["host"] ;
                   USER     shIni["MARIADB"]["user"] ;
                   PASSWORD shIni["MARIADB"]["pase"] ;
                   PORT     shIni["MARIADB"]["puerto"] ;
                   FLAGS    0;
                   DATABASE shIni["MARIADB"]["database"] ;
                   ON ERROR MiError( oServer, nError, lInternal )

   return( nil )

PROCEDURE MiError( oServer, nError, lInternal )
   LOCAL cText := ""

   cText += "Error from Custom Error Message" + CRLF
   cText += "================================" + CRLF
   cText += oServer:ErrorTxt() + CRLF
   cText += "ERROR No: " + Str( nError ) + CRLF
   cText += "Internal: " + If( lInternal, "Yes", "No" ) + CRLF

   ? cText + CRLF
 

que estoy haciendo mal?
porque en MiError() oServer es nil, en consecuencia me da error al ejecutar la sentencia oServer:ErrorTxt()
tambien pregunto: debo pasar lInternal, como .T. o .F. o solo mencionar la variable? y el manejdor me dice si el error es "MYSQL" o "TDOLPHIN" ?

gracias por tu tiempo
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: TDolphin - bOnError

Postby Daniel Garcia-Gil » Fri Apr 20, 2012 4:04 pm

Hola

MarioG wrote:porque en MiError() oServer es nil, en consecuencia me da error al ejecutar la sentencia oServer:ErrorTxt()

en esta parte NO debes enviar oServer porque para el momento que se construye la conexion y se crea el codeblock bOnError oServer es NIL...
ON ERROR MiError( oServer, nError, lInternal )

si revisas tdolphin.ch veras que se debe usar es Self para este caso

ON ERROR MiError( Self, nError, lInternal )

Self es el objeto TDolphinSrv...

MarioG wrote:tambien pregunto: debo pasar lInternal, como .T. o .F. o solo mencionar la variable? y el manejdor me dice si el error es "MYSQL" o "TDOLPHIN" ?

extendiendo un poco mas sobre el caso anterior, cuando usas el comando xbase CONNECT (de tdolphin.ch) este envia 4 parametros al codeblock bOnError self, nError, lInternal, cExtra
Self = el objeto TDolphinSrv
nError = error devuelto por la clase, que podria ser un error de MySql o de programacion (error del programador)
lInternal = si el error es interno (error del programador) devuelve .T. de loc ontrario es un error devuelto por MySql
cExtra = es el ultimo query generado cuando se usa el metodo MultiQuery

estas son variables que el programador NO asigna son enviadas por la misma clase TDolphinSrv al codeblock bOnError
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: TDolphin - bOnError

Postby MarioG » Fri Apr 20, 2012 8:33 pm

gracias... seguimos aprendiendo :wink:
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: TDolphin - bOnError

Postby jbrita » Fri Apr 05, 2019 1:18 pm

Quien a probado ON ERROR de la Tdolphin y como ver el tipo de error

Saludos
jbrita
 
Posts: 486
Joined: Mon Jan 16, 2006 3:42 pm

Re: TDolphin - bOnError

Postby joseluisysturiz » Sat Apr 06, 2019 2:02 am

jbrita wrote:Quien a probado ON ERROR de la Tdolphin y como ver el tipo de error

Saludos

Saludos, espero te sirva, los parametros entre comillas con inventos mios...gracias... :shock:

Code: Select all  Expand view

ShowError( oError, "ma_bancos-tbl_bancos", "ma_bancos.prg" )

FUNCTION ShowError( oError, cFuncion, cPrg, cTabla, cSql )

   DEFAULT cFuncion := "No definida"
   DEFAULT cPrg     := "PRG"
   DEFAULT cTabla   := "Nombre_Tabla"
   DEFAULT cSql     := "Sin Sql"

   MsgInfo( " Descripción: " + oError:Description + CRLF + CRLF +;
            "       Tabla: " + cTabla + CRLF +; // 28/02/2016
            "  En Funcion: " + cFuncion + CRLF +;
            "    Programa: " + cPrg + CRLF +;
            "    Sub Code: " + AllTrim( STR( oError:SubCode ) ) + CRLF +;
            "    Severity: " + AllTrim( STR( oError:Severity ) ) + CRLF +;
            "   SubSystem: " + oError:SubSystem + CRLF +;
            "   Operation: " + oError:SubSystem + CRLF + CRLF +;
            "   Sql-Query: " + cSql , oDatos:cTitMsg )

RETURN NIL


 
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: TDolphin - bOnError

Postby Biel EA6DD » Sat Apr 06, 2019 8:45 am

Code: Select all  Expand view

...
oServer:bOnError:={|oServer,nError,lInternal,cExtra| CtrlError( oServer, nError, lInternal, cExtra )}
...
STATIC FUNCTION CtrlError( oServer, nError, lInternal, cExtra )
   LOCAL cText := ""
   LOCAL oError
   hb_Default( @cExtra, "")
   SWITCH nError
   CASE 1062
      MsgAlert( 'Clave Primaria duplicada, registros no se ha grabado '+CRLF+;
               'Error '+hb_ntos(nError)+CRLF+;
               If( lInternal, "Internal Error:" + DOL_GETERROTEXT( nError ) , oServer:ErrorTxt() ) + " "+ CRLF + cExtra,ProcName(5) )
      EXIT
   CASE 1205
      MsgAlert('Tiempo de espera para bloqueo superado, datos no se han grabado.'+CRLF+;
               ' Reintentelo dentro de un rato.'+CRLF+;
               'Error '+Trim(Str(nError))+CRLF+;
               If( lInternal, "Internal Error:" + DOL_GETERROTEXT( nError ) , oServer:ErrorTxt() ) + " "+ CRLF + cExtra,ProcName(5) )
      EXIT
   CASE 1451
      MsgAlert('No puede eleminarse el registro'+CRLF+;
               'Otras tablas hacen referencia a este registro'+CRLF+;
               'Error '+Trim(Str(nError))+CRLF+;
               If( lInternal, "Internal Error:" + DOL_GETERROTEXT( nError ) , oServer:ErrorTxt() ) + " "+ CRLF + cExtra,ProcName(5) )
      EXIT
   CASE ... /*Más errores que queramos controlar*/
...
   OTHERWISE
      oError := ErrorNew()
      oError:SubSystem   = If( lInternal, "TDOLPHIN", "MYSQL" )
      oError:SubCode     = nError
      oError:Severity    = 2
      oError:Description = If( lInternal, "Internal Error:" + DOL_GETERROTEXT( nError ) , oServer:ErrorTxt() ) + " " + cExtra

      Eval( ErrorBlock(), oError )
   END

 
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Re: TDolphin - bOnError

Postby jbrita » Mon Apr 08, 2019 3:11 pm

Gracias por su ayuda, pero el problema que tengo que hay ocaciones se me bloquea una tabla "PARAMETROS" que tiene 2 registros y la unica manera de desbloquearla es comunicarse con soprte del hosting y ellos la pueden desbloquearla, ese es mi problema por ando ddetras de algo para saber porque ocurre eso

saludos
jbrita
 
Posts: 486
Joined: Mon Jan 16, 2006 3:42 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Willi Quintana and 38 guests