19/08/2018, 06:43:52 am *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias: LISTADO ACTUALIZADO DE CURSOS
 
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: Procedimiento Almacenado  (Leído 397 veces)
0 Usuarios y 1 Visitante están viendo este tema.
R_Gauss
Semi pleno
***

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 77


Ver Perfil
« : 09/05/2018, 03:52:21 pm »

Buen día.

Estaba realizando un Procedimiento almacenado en MySQL y me arroja un error. El ejercicio es el siguiente:

Se quiere hacer una base de datos para guardar la información de los equipos de la copa mundial de
futbol. Se quiere guardar la siguiente información de cada jugador: nombre, fecha de nacimiento, altura,
peso y numero de goles que ha hecho realizado en el mundial. Además se quiere guardar la
información de cada selección: nombre, grupo (A, B, C, D, E, F, G, H) y número de goles. Cada jugador se
identifica por un id. Cada selección se identifica por un id.


1. Hacer un Procedimiento Almacenado que dado el nombre de una selección ponga el numero de
goles de la selección en 0 y los goles de sus jugadores también en 0;


Lo que hice fue, crear las tablas y al realizar el Procedimiento Almacenado me aparece error.

Agradezco sus colaboraciones,

Saludos,

En línea
manooooh
Pleno*
*****

Karma: +1/-0
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 777


Ver Perfil
« Respuesta #1 : 09/05/2018, 04:26:55 pm »

Hola

Lo que hice fue, crear las tablas y al realizar el Procedimiento Almacenado me aparece error.

Si no escribís el código o cómo armaste las tablas es imposible conocer lo que intentaste, y por ende saber dónde está el error.

Por favor, ¿podrías adjuntar en una foto lo que intentaste?

Saludos
En línea
R_Gauss
Semi pleno
***

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 77


Ver Perfil
« Respuesta #2 : 11/05/2018, 09:42:04 pm »

Hola Manooooh, gracias por su respuesta:


Adjunto la foto de las tablas creadas y del Procedimiento Almacenado:



Agradezco sus colaboraciones.

Saludos,

* Tablas.PNG (19.01 KB - descargado 15 veces.)
* Procedimiento.PNG (12.11 KB - descargado 17 veces.)
En línea
manooooh
Pleno*
*****

Karma: +1/-0
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 777


Ver Perfil
« Respuesta #3 : 12/05/2018, 07:06:12 pm »

Hola

¿Qué error te aparece? Yo lo veo bien, salvo quizás por estas observaciones que no sé si afectarán al programa (nunca lo usé, pero sé que si en otros programas lo escribo así me generará error):

  • Las dos tablas están bien.
  • En cuanto al procedimiento:
  • Los signos de $$ al final, ¿no deberían estar después de la palabra DELIMITER y no antes (o probá poniendo los $ $ del principio luego del DELIMITER).
  • En CREATE PROCEDURE, ¿qué significa "IN ..."? ¿No debería ser el tipo de dato entero INT Nombre_s etc?
  • En SELECT ID INTO ID_SELECCION, el ID no está declarado en la tabla seleccion, ¿eso está bien?
  • Por si las dudas en el Procedimiento no declares ID_SELECCION como el mismo que está en la tabla seleccion.

Eso me hace ruido, pero no soy especialista en esto. Acordate de adjuntar el error para ver mejor la situación.

Saludos
En línea
R_Gauss
Semi pleno
***

Karma: +0/-0
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 77


Ver Perfil
« Respuesta #4 : 12/05/2018, 09:24:55 pm »

Hola

¿Qué error te aparece? Yo lo veo bien, salvo quizás por estas observaciones que no sé si afectarán al programa (nunca lo usé, pero sé que si en otros programas lo escribo así me generará error):

  • En CREATE PROCEDURE, ¿qué significa "IN ..."? ¿No debería ser el tipo de dato entero INT Nombre_s etc?
  • En SELECT ID INTO ID_SELECCION, el ID no está declarado en la tabla seleccion, ¿eso está bien?

Eso me hace ruido, pero no soy especialista en esto. Acordate de adjuntar el error para ver mejor la situación.

Saludos


Gracías por la respuesta,

El IN... es donde se va a REALIZAR el Procedimiento.

Sin embargo, el Procedimiento me ejecuta sin errores, el error aparece cuando lo voy a llamar:  CALL INSERTAR. Aparece que los argumentos son incorrectos en el PROCEDIMIENTO.

Tomaré en cuenta lo que me dices,

Saludos,
En línea
manooooh
Pleno*
*****

Karma: +1/-0
Desconectado Desconectado

Sexo: Masculino
Argentina Argentina

Mensajes: 777


Ver Perfil
« Respuesta #5 : 12/05/2018, 10:50:14 pm »

Hola

El error aparece cuando lo voy a llamar:  CALL INSERTAR. Aparece que los argumentos son incorrectos en el PROCEDIMIENTO.

Perdón por la insistencia, ¿no es porque pasás como argumento un IN en vez de INT? O sino cuando invocás el procedimiento, que vendría a ser como una función, ¿también no tenés que pasarle el NOMBRE_S? Es decir una vez que armaste el procedimiento para un tipo de dato genérico, cuando la invoques (CALL) tenés que decirle con qué variable específica va a trabajar (CALL INSERTAR(INT NOMBRE_S)).

P.D.: El enunciado dice que "Dado el nombre de una selección invoque al procedimiento que haga...", entonces me parece que la función debería aceptar un VARCHAR, no un INT, por lo que debería ser CALL INSERTAR(VARCHAR Colombia), una cosa así.

Saludos
En línea
Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.4 | SMF © 2006, Simple Machines LLC XHTML 1.0 válido! CSS válido!