Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/02/2011, 08:58
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Duda procedimiento

En realidad el problema es más simple: Si no introduce ningún parámetro, el SP no se ejecutará y te devovlerá un error, sin importar qué lenguaje estés usando, porque MySQL no admite parámetros opcionales. SI el prototipo dice que hay un parámetro debes forzosamente poner uno. MySQL no te da alternativas a eso.
Además:

1) Todos los lenguajes cuentan con funciones, métodos o propiedades que te permiten saber si la ejecución de una consulta a la base de datos devuelve un error, e incluso qué numero de error y que mensaje contiene. Busca en el manual de tu lenguaje (siempre hay uno, hasta en la web).

2) La aplicación es la que debe controlar que el usuario no pueda omitir parámetros y no la base de datos. Plantearlo al revés es un error conceptual y de procesos. ¿Para qué lanzar una consulta, que requiere tiempo de comunicación, procesador y lectura de disco, si sabes a priori que no podrá responderla porque no están los parámetros necesarios?.

Regla general de desarrollos con soporte de base de datos (aprendida en clase y luego probada por experiencia): No se usa la base de datos para hacer validaciones. Las validaciones se hacen en la aplicación y de ser necesario, los datos que se piden a la base, pero no se valida en ella.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)