In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

ErrorHandler

Foro de Xailer profesional en español
Responder
RRamonell
Mensajes: 32
Registrado: Mar May 06, 2008 5:20 pm

ErrorHandler

Mensaje por RRamonell »

Hola todos:
He encontrado que el método TMySQLDataSource:IsError() no funciona
cuando ocurre un error como por ejemplo, en el intento de creación de
una tabla que ya existe o en el intento de eliminación de una tabla que
no existe o en el intento de crear un query de una tabla que no existe,
y de que tampoco funciona TRY/CATCH en la parte donde CATCH atrapa al
objeto error "e", pues si se ve a través del debugger que "e" es un
objeto error, pero esta vacio o no se puede "abrir" para inspeccionar
sobre su uso, y por lo tanto no lo puedo usar en esa estructura, ya que
no funciona.
Ya estoy usando TRY/CATCH con nLastError y cLastError para atrapar
errores de MySQL e informar al usuario de ellos (que por cierto en
algunos casos nLastError contiene cero y cLastError nada), pero me
gustarí­a ofrecer más información al usuario sobre esto, ya que en mi
experiencia propia esta información (cuando ocurre un error en el
run-time de un sistema complejo) a quien más ayuda es a quien da
mantenimiento al sistema o sea Yo, por lo cual pensé en construir mi
propio errorhandler para insertarlo en mis proyectos Xailer.
Al insertar mi errorhandler en un proyecto descubro que aquí­ tampoco
tiene funcionalidad el objeto error "e", pues tampoco logro la
manipulación de sus propiedades (recordando las que habí­a disponibles en
Clipper) pues se manifiesta como si todas ellas estuviesen sin valor
aunque si las reconoce Xailer y tampoco se puede "abrir" con el debugger
aquí­.
Les suplico su ayuda, pues como menciona Ignacio OZ en una de sus
interesantes notas: "cuando se empiezan a manejar otros tipos de bases
de datos como puede ser cualquier base de datos SQL…….es imposible
conocer a priori si la operación va a tener éxito."
Alguien me puede decir como puedo manipular al objeto error e ?
Gracias por su ayuda.
Rene Ramón Elly.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

ErrorHandler

Mensaje por jfgimenez »

René,
> He encontrado que el método TMySQLDataSource:IsError() no funciona cuando
> ocurre un error como por ejemplo, en el intento de creación de una tabla
> que ya existe o en el intento de eliminación de una tabla que no existe o
> en el intento de crear un query de una tabla que no existe, y de que
> tampoco funciona TRY/CATCH en la parte donde CATCH atrapa al objeto error
> "e", pues si se ve a través del debugger que "e" es un objeto error, pero
> esta vacio o no se puede "abrir" para inspeccionar sobre su uso, y por lo
> tanto no lo puedo usar en esa estructura, ya que no funciona.
El problema no es que "e" no sea un objeto error, sino que el debugger sólo
permite inspeccionar objetos que deriven de la clase base de Xailer
TComponent, y TError es una clase de xHarbour que no deriva de TComponent.
> Ya estoy usando TRY/CATCH con nLastError y cLastError para atrapar errores
> de MySQL e informar al usuario de ellos (que por cierto en algunos casos
> nLastError contiene cero y cLastError nada), pero me gustaría ofrecer más
> información al usuario sobre esto, ya que en mi experiencia propia esta
> información (cuando ocurre un error en el run-time de un sistema complejo)
> a quien más ayuda es a quien da mantenimiento al sistema o sea Yo, por lo
> cual pensé en construir mi propio errorhandler para insertarlo en mis
> proyectos Xailer.
>
> Al insertar mi errorhandler en un proyecto descubro que aquí tampoco tiene
> funcionalidad el objeto error "e", pues tampoco logro la manipulación de
> sus propiedades (recordando las que había disponibles en Clipper) pues se
> manifiesta como si todas ellas estuviesen sin valor aunque si las reconoce
> Xailer y tampoco se puede "abrir" con el debugger aquí.
>
> Les suplico su ayuda, pues como menciona Ignacio OZ en una de sus
> interesantes notas: "cuando se empiezan a manejar otros tipos de bases de
> datos como puede ser cualquier base de datos SQL…….es imposible conocer a
> priori si la operación va a tener éxito."
>
> Alguien me puede decir como puedo manipular al objeto error e ?
Puedes utilizar el objeto error sin problemas, lo único que no puedes hacer
es inspeccionarlo con el debugger.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder