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

procedimiento alamcenado solo con parametro OUT

Estas en el tema de procedimiento alamcenado solo con parametro OUT en el foro de Mysql en Foros del Web. Saludos a los miembros del foro quiero agradecerles porque siempre me ayudado, ahora esoty con una nueva interrogante se puede hacer un procedimiento almacenado con ...
  #1 (permalink)  
Antiguo 03/06/2011, 15:22
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 12 años, 11 meses
Puntos: 0
procedimiento alamcenado solo con parametro OUT

Saludos a los miembros del foro quiero agradecerles porque siempre me ayudado, ahora esoty con una nueva interrogante se puede hacer un procedimiento almacenado con un "SELECT"

Código HTML:
CREATE SP_M_Area_FormQRY(
	out id CHAR(4),
	out nombre varchar(50)
)
BEGIN 
	SELECT * FROM M_Area;
END
Bueno quiero hacer algo como esto supongo que me volvera un array para luego procesarlo en java pero eso ya es otra historia primero lo primero, como seri este procedimiento almacenado... De antemano gracias por la ayuda ....
  #2 (permalink)  
Antiguo 03/06/2011, 15:47
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: procedimiento alamcenado solo con parametro OUT

CREATE PROCEDURE SP_M_Area_FormQRY(

)
BEGIN
SELECT * FROM M_Area;
END

Buscando encontre esto al parecer esta bien...alguna otra idea
  #3 (permalink)  
Antiguo 03/06/2011, 15:48
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: procedimiento alamcenado solo con parametro OUT

El procedimiento te va a funcionar, pero no devolverá valores en las variables OUT porque no las estás usando para nada en el SP.
Simplemente devolverá una tabla (el lenguaje de programación elegido las interpretará como sea que las tome) si las usas como quien usa un simple SELECT.

¿Cuál es tu duda?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 04/06/2011, 15:31
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: procedimiento alamcenado solo con parametro OUT

Gracias por responder..gnzoloyo entonces como seri el SP creique eso me devolveria un array...
Mi duda es concreta hacer un SP que me devuelva un arreglo... de antemano gracias.... me ayudariamucho a solucionar esa pequeña interrogante??...
  #5 (permalink)  
Antiguo 04/06/2011, 15:55
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: procedimiento alamcenado solo con parametro OUT

La interpretación de una tabla como array es un asunto de PHP, no de MySQL. Para MYSQL toda salida de datos es una tabla.
PHP toma la respuesta de MySQL y su librería la interpreta como un array de arrays (donde cada array es el contenido de un registro).
En definitiva, es un tema que se maneja en los lenguajes.
En cuanto a MySQL y sus SP, el asunto es que no existen en MySQL los arrays. No son parte del tipo de datos manejados por MySQL, a diferencia de Postgre que si tienes arrays. Tampoco existen los tipos de dato ROW o TABLE, por lo que no puedes volcar el resultado de una consulta en una variable de un SP, y tampoco (obviamente) devolverlo como parametro de salida.

Explicate qué es exactamente lo que quieres hacer y cómo pretendías manejar el resultado de la consulta. ¿Con un lenguaje de programación o quieres manejarlo dentro del SQL mismo?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 04/06/2011, 16:06
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: procedimiento alamcenado solo con parametro OUT

Hola gnzsoloyo disculpa si no estoy siendo muy claro lo que quiero es hacer algo asi..
"Select Id,Nombre from Area" o "Select * from Area";
pero en un procedimiento almacenado otra pregunta es necesario mandarle parametros de entrada por que quiero me muestre todos los registros.. y luego de que el SP este bien poderlo procesarlo desde java pero ese es otro asunto...de antemano que agradesco por la ayuda que me das...
  #7 (permalink)  
Antiguo 04/06/2011, 16:46
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: procedimiento alamcenado solo con parametro OUT

Los parámetros se usan sólo si se necesita interactuar con el SP enviando o recibiendo ciertos valores específicos, según el caso. Un SP puede existir sin ellos si no los necesita, como es en tu caso.
En tu caso lo que te conviene, si vas a trabajar con Java, es acudir al conector para java y al manual de referncia de MySQL, en el capítulo específico:

MySQL 5.0 Reference Manual :: 25 Conectores :: 25.4 MySQL Connector/J
o bien:
MySQL 5.0 Reference Manual :: 25 Conectores :: 25.5 MySQL Connector/MXJ

Yo personalmente no sé cuál es la diferencia entre ambos conectores, pero para el caso te servirán.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 04/06/2011, 17:01
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: procedimiento alamcenado solo con parametro OUT

hola entonces el SP estaria bien quiero saberlopara pasar al siguientepunto que es procesarlo en java..
CREATE PROCEDURE SP_M_Area_FormQRY(

)
BEGIN
SELECT Id,Nombre FROM M_Area;
END
Otra consulta es necesario hacerle into:
SELECT Id,Nombre into codigo,nombre FROM M_Area;
creo que es asi.. de agradesco por tu respuesta...
  #9 (permalink)  
Antiguo 04/06/2011, 17:11
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: procedimiento alamcenado solo con parametro OUT

En ese caso, tanto codigo como nombre deberían ser variables locales del stored procedure, sea declaradas en el cuerpo como los nombres de los parámetros del prototipo (variables de entrada). En el primer caso deberías terminar el SP con un
Código MySQL:
Ver original
  1. SELECT codigo,nombre;
, y en el segundo caso para poder recuperarlas deberías usar parámetros OUT o INOUT para poder recuperarlos.
Ene sta parte se explica como manipular con java los parámetros IN, OUT e INOUT: http://dev.mysql.com/doc/refman/5.0/...ored-procedure
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 05/06/2011, 09:56
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: procedimiento alamcenado solo con parametro OUT

Gracias gnzsoloyo.. lo que sucede es que en java no me muestra nada, supongo que es porque no trae ningun registro, por eso quiero saber como seri un procedimiento almacenado para mi caso:

CREATE PROCEDURE SP_M_Area_FormQRY(
out codigo,
out nombre
)
BEGIN
SELECT Id,Nombre FROM M_Area;
Select codigo, nombre;
END

Seria asi corrigeme por favor ya que tu sabes mas del tema que yo, quiero descartar posibilidades de porque no me muetsra nada y una de esas es el SP, quiero saber si esta bien o que le falta. muchas gracias por tu ayuda.
  #11 (permalink)  
Antiguo 05/06/2011, 15:04
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: procedimiento alamcenado solo con parametro OUT

No puedes hacer dos SELECT en un sólo SP. El con java sólo puede esperar uno por cada invocación a un SP.

Traducción: El problema no está en el SP, sino en lo que estás haciendo con él. Si el SELECT normalmente no devuelve datos es porque no tienes datos en las tablas, si estuviese mal escrito, java debería estar recibiendo un error, posibilidad que tu no debes estar manejando...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 05/06/2011, 17:22
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: procedimiento alamcenado solo con parametro OUT

gracias gnzsoloyo voy a tomar en cuenta tu recomendacion, este problema ya me esta volviendo loco, ahora pasare al java, debo tar manejando algo mal... te aviso cualquier novedad..conclusion mi SP esta bien:
CREATE PROCEDURE SP_M_Area_FormQRY()

BEGIN
SELECT Id,Nombre FROM M_Area;
END
o es que tengo que asignarles parametros out y hacerles un INTO.
  #13 (permalink)  
Antiguo 05/06/2011, 19:39
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: procedimiento alamcenado solo con parametro OUT

Fíjate en el manual de referencia de MySQL cuyo link te pasé (¡leelo!), allí muestra perfectamente cómo se pueden leer los valores devueltos en un parámetro OUT.
Una sintaxis coherente para un SP con parámetros de salida sería:
Código MySQL:
Ver original
  1. CREATE PROCEDURE SP_M_Area_FormQRY(OUT VID INT, OUT VNOMBRE VARCHAR(200))
  2. SELECT Id,Nombre FROM M_Area INTO VID, VNOMBRE ;
El resto es programación en Java.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 06/06/2011 a las 11:24
  #14 (permalink)  
Antiguo 06/06/2011, 11:05
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: procedimiento alamcenado solo con parametro OUT

Gracias gnzsoloyo, tenias razon lo que estaba mal era el trato que le daba en el java porq el SP estubo bien y ahora con tu ultimo ejemplo que me pones tengo las cosas ya un poco mas claras.. gracias nuevamente....
  #15 (permalink)  
Antiguo 06/06/2011, 11:23
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: procedimiento alamcenado solo con parametro OUT

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: parametro, procedimiento
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 00:34.