TDolphin - bOnError

Post Reply
User avatar
MarioG
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR
Been thanked: 2 times

TDolphin - bOnError

Post by MarioG »

Daniel;
hago lo siguiente:

Code: Select all | Expand

   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
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: TDolphin - bOnError

Post by Daniel Garcia-Gil »

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
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
User avatar
MarioG
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR
Been thanked: 2 times

Re: TDolphin - bOnError

Post by MarioG »

gracias... seguimos aprendiendo :wink:
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
jbrita
Posts: 510
Joined: Mon Jan 16, 2006 3:42 pm

Re: TDolphin - bOnError

Post by jbrita »

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

Saludos
User avatar
joseluisysturiz
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: TDolphin - bOnError

Post by joseluisysturiz »

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

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
Biel EA6DD
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Re: TDolphin - bOnError

Post by Biel EA6DD »

Code: Select all | Expand

...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/
jbrita
Posts: 510
Joined: Mon Jan 16, 2006 3:42 pm

Re: TDolphin - bOnError

Post by jbrita »

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
Post Reply