Visual Basic - Gestionar errores con igual numero

Life is soft - evento anual de software empresarial
 
Vista:

Gestionar errores con igual numero

Publicado por latisfundo (12 intervenciones) el 05/12/2008 21:06:30
Hola tengo un problema.
Hice un gestor de errores (On error goto ErrorBD ... If err.number=*** then ...etc)para una base de datos en DAO. Si la contraseña era incorrecta o no se encontraba el archivo etc generaba un error con un nº distinto y así podía dar un a respuesta distinta a cada error.
El problema es que al hacer lo mismo en ADO los errores tienen el mismo nº (-2147467259), y claro, no se cómo puedo diferenciarlos en el gestor.
¿Qué puedo hacer?
Uso VB6 y la base es Access97
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Gestionar errores con igual numero

Publicado por igor (633 intervenciones) el 05/12/2008 22:08:09
Un gestor de errores? Yo no soy muy partidario de dichos gestores.

Si existe la posibilidad de que la contraseña sea incorrecta o que el archivo no exista ¿por qué no realizar un código que lo verifique y evite que se genere un error?

Para diferenciar de donde se generó el error puedes activar un flag (variable booleana) para indicar si se está usando DAO o ADO. Tendrás que activar o desactivar la variable cada vez que uses DAO o ADO. Luego en el "Gestor" pones:

if err.number=-2147467259 then
if Flag=false then
msgbox "ERROR DAO"
else
msgbox "ERROR ADO"
end if
end if

En el código donde usas DAO:

Falg=false
On error goto Gestor
Código DAO

En el código donde usas ADO:

Falg=true
On error goto Gestor
Código ADO

Desde luego yo me olvidaría del gestor, incluiría el código necesario para verifiar que todos los posibles casos que generan errores estén bajo control y nunca se desencadene un error.

Aunque por este foro hay mucha gente que me trata de loco, ya sabemos que siempre se llama locos a aquellos que miran más alla del horizonte, nunca nadie les entiende.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gestionar errores con igual numero

Publicado por latisfundo (12 intervenciones) el 06/12/2008 12:32:17
Gracias Igor.
La verdad es que tu enfoque no se me había ocurrido. Es original.
De todos modos esta mañana encontré una solución: Usar la colección de errores de ADO y en concreto la propiedad SQLState. Esta propiedad da un nº que sí es distinto para cada error; de hecho da los mismos números que me salían en DAO, así que ya no hay problema.
De todas formas gracias por contestar y por darme esa visión nueva de anticiparme al error. Es interesante.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Otro error

Publicado por Quique (2 intervenciones) el 08/12/2008 17:12:21
Sin quitarle el mérito a Igor, ni es "original" ni tampoco interesante.
Lo que expuso Igor es algo de lo más común que cualquier programador (que en verdad se precie como tal) debería implementar SIEMPRE, y no esperar a que el programa "reviente" en alguna parte o "le duela" algo.
Pero, en fin; cada quien tiene su propia forma de programar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Otro error

Publicado por igor (633 intervenciones) el 08/12/2008 23:17:31
Para nosotros resulta obvio, pero hay gente a la que hay que enseñarle cual es el buen camino.

Aunque curiosamente el ejemplo de Microsoft nos enseña todo lo contrario, y encima ganan dinero?

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar