Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Fallo extraño en EXECUTE_QUERY sin mensaje de error

Estas en el tema de Fallo extraño en EXECUTE_QUERY sin mensaje de error en el foro de Oracle en Foros del Web. Hola. Actualmente estoy en un proyecto de mantenimiento en el que desarrollamos con Oracle Forms 10g. Ahora mismo estoy intentando resolver una incidencia. He logrado ...
  #1 (permalink)  
Antiguo 28/09/2012, 07:21
 
Fecha de Ingreso: abril-2008
Mensajes: 10
Antigüedad: 16 años
Puntos: 0
Fallo extraño en EXECUTE_QUERY sin mensaje de error

Hola. Actualmente estoy en un proyecto de mantenimiento en el que desarrollamos con Oracle Forms 10g.

Ahora mismo estoy intentando resolver una incidencia. He logrado localizar el punto del formulario donde se produce el error, pero desconozco las causas del mismo.

Este error solo se produce en algunos casos especificos, funcionando con normalidad en el resto de los casos. Es decir, para la mayoria de los registros funciona bien, pero para algunos pocos registros no.

El error se produce cuando desde el trigger WHEN-NEW-FORM-INSTANCE hago un EXECUTE_QUERY (sin parámetros) sobre un bloque de base de datos. Debería sacar los datos del registro sin problema, como hace casi siempre, pero no lo hace.

Además de meter montones de mensajes para ver que camino toma, he probado varias cosas:
- Ver si la cláusula where del bloque de datos se cambia antes del EXECUTE_QUERY, o bien que directamente no está fijada.
- Verificar si el parámetro que paso al formulario, el cual se utiliza en la cláusula where, es correcto.
- Comprobar si al hacer el EXECUTE_QUERY aparece algún código en el SQLCODE o algún mensaje en SQLERRM.
- Lanzar el EXECUTE_QUERY en un bloque anónimo con la excepción WHEN OTHERS para ver si se produce algún error.

Puedo decir con certeza que la cláusula where no se altera y está bien fijada, que el parámetro es correcto, y que no se produce ningún tipo de excepción.

Pues la cosa no acaba ahí.
He puesto mensajes tanto en la primera línea del trigger PRE-QUERY, como en la primera del trigger POST-QUERY, y aquí sucede lo más raro de todo.
Antes del EXECUTE_QUERY me aparecen los mensajes del PRE-QUERY, tal y como debe ser, pero luego no me aparecen los mensajes del POST-QUERY.
No entiendo porque demonios entra al PRE-QUERY y no al POST-QUERY. Si me diera alguna excepción, tendría sentido, pero no me da absolutamente ninguna cuando hago el EXECUTE_QUERY.

Simplemente no tiene sentido alguno.

Espero que os surja alguna idea y me podáis ayudar, dado que es algo que me corre prisa.
Saludos y gracias de antemano.
  #2 (permalink)  
Antiguo 02/10/2012, 00:52
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Fallo extraño en EXECUTE_QUERY sin mensaje de error

Mmmmmmmmmm, buena cuestión.

A ver, te apunto varias cosas para que las verifiques.

• Los PRE y los POST son procedimientos restringidos, así que entre otras cosas ni puedes navegar ni hacer COMMIT.
• ¿ tienes algo raro en el post-query ?, me refiero a algún SELECT …. INTO, algún insert…... Pon a grosso modo lo que hace el post-query.
• Intenta localizar el registro que te dá error y coteja el tamaño y tipo de datos de lo que te traes en el execute-query con el tamaño-tipo de datos que tienen los text-item, puede ( aunque no es probable ) que un text-item se quede pequeño o intentes meter un VARCHAR2 en un NUMBER
• OJO, que lo mismo el error te dá en el pre-query y por eso no se te dispara el post-query.
• Tambien puedes activar la consola java a ver si ves algo.


Un apunte mas. El Forms 10g es tan “tan” que muchas veces te salta un error y ni te enteras porque no te avisa, simplemente se para la ejecución del programa y ya está, por eso conviene que en todos los triggers y program units , en cada BEGIN-END pongas por lo menos un when others, te lo digo por experiencia propia ( acabamos de migrar una aplicación hecha en 6i a 10g y esto ya lo he vivido )

Pues ya nos dices.

Etiquetas: forms
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:33.