Member for

9 years 11 months

Publicaciones

  • 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.