Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/05/2013, 18:00
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: error procedimiento almacenado

Hay al menos dos cosas que considerar:
1) Las comillas (") no funcionan en cadenas de texto en todas las instalaciones de MySQL, a menos que se modifique la configuración del servidor.
2) Las variables OUT pueden no funcionar bien si la librería usada en programación no se utiliza adecuadamente. Podrías no recuperar los datos.

En cualquier caso, o te recomiendo probarlo así:
Código MySQL:
Ver original
  1. DELIMITER $$
  2.  
  3. DROP PROCEDURE IF EXISTS `buscar_direccion_cliente`$$
  4.  
  5. CREATE PROCEDURE `buscar_direccion_cliente`(IN id  INT)
  6.     SET @consulta = CONCAT ('SELECT id_direccion CODIGO, id_cliente NIT, pais PAIS
  7. FROM direccion_cliente WHERE id_direccion=',id);
  8.  
  9.     PREPARE ejecutar FROM @consulta;
  10.     EXECUTE ejecutar;
  11. END$$
  12.  
  13. DELIMITER ;
Considerando que eso devolverá simplemente un registro, puedes leer el resultado sin necesidad de usar parametros OUT.
Además, como los lenguajes no te permiten ejecutar consultas sin seleccionar la base, poner la base en la consulta es innecesario (y contraproducente), así como tampoco tiene sentido indicar la tabla en los campos, si estás consultando sólo una tabla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)