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

Error al ejecutar un Stored Procedure remotamente.

Estas en el tema de Error al ejecutar un Stored Procedure remotamente. en el foro de Mysql en Foros del Web. Bueno, tengo un servidor MySQL corriendo en Windows, al cual le creé un usuario que tenga permisos de acceso desde cualquier host. Con una aplicación ...
  #1 (permalink)  
Antiguo 12/09/2012, 12:02
 
Fecha de Ingreso: enero-2012
Mensajes: 44
Antigüedad: 12 años, 9 meses
Puntos: 0
Exclamación Error al ejecutar un Stored Procedure remotamente.

Bueno, tengo un servidor MySQL corriendo en Windows, al cual le creé un usuario que tenga permisos de acceso desde cualquier host. Con una aplicación PHP me conecto a dicho servidor ingresando la IP pública del mismo (el router ya está configurado para que redirija al puerto correspondiente de la PC correspondiente).

La aplicación PHP está subida a un servidor de internet, y el servidor MySQL lo tengo en mi casa. La cadena de conexión que utilizo en PHP es:

mysql_connect("200.43.xxx.xx:3306", "username", "password");

donde el primer parámetro es mi IP seguida del puerto, el nombre de usuario y el password del usuario que anteriormente mecioné que creé.

El problema se da cuando quiero ejecutar un Stored Procedure, la aplicación devuelve el siguiente error: PROCEDURE icu.GetUsuarioLogin can't return a result set in the given context donde GetUsuarioLogin es el nombre del SP.

Bueno, el servidor de internet me ofrecía base de datos MySQL pero no me permitía que la misma posea SP así que decidí hostear la BD en mi casa, ahora me surge la duda, ¿tampoco recibe la respuesta de un SP? ¿Será limitación del hosting?

O bien, ¿me falta configurar algo?

La aplicación localmente y también remotamente (si hosteo la aplicación en mi propio servidor) funciona correctamente, no es error de código PHP ni MySQL.

Saludos!
  #2 (permalink)  
Antiguo 12/09/2012, 13:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error al ejecutar un Stored Procedure remotamente.

Cita:
El problema se da cuando quiero ejecutar un Stored Procedure, la aplicación devuelve el siguiente error: PROCEDURE icu.GetUsuarioLogin can't return a result set in the given context donde GetUsuarioLogin es el nombre del SP.
Cita:
O bien, ¿me falta configurar algo?
No exactamente.
Ese mensaje suele aparecer cuando usas los SP para ejecutar SELECTS. Significa simplemente que la librería que usas en PHP no puede manejar correctamente la respuesta del SP como tabla, porque el entorno de ejecución del SP muere al terminar de ejecutarse y por tanto no se puede recorrer el array de registros devuelto.
En definitiva, es un problema de programación producto de la librería, como te dije.
Este error aparece en PHp cuando usas la librería MYSQL, que no tiene capacidades de administrar ese tipo de respuestas de un SP.
La solución es simple... a medias: Debes reemplazar toda codificación con la librería MYSQL y reemplazarla por la MYSQLI, que si puede hacer eso.

Nota Bene: Los SP son de sólo lectura, por lo que no funcionan para hacer UPDATE sobre las tablas leídas.
No lo olvides.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 14/09/2012, 19:07
 
Fecha de Ingreso: enero-2012
Mensajes: 44
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Error al ejecutar un Stored Procedure remotamente.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No exactamente.
Ese mensaje suele aparecer cuando usas los SP para ejecutar SELECTS. Significa simplemente que la librería que usas en PHP no puede manejar correctamente la respuesta del SP como tabla, porque el entorno de ejecución del SP muere al terminar de ejecutarse y por tanto no se puede recorrer el array de registros devuelto.
En definitiva, es un problema de programación producto de la librería, como te dije.
Este error aparece en PHp cuando usas la librería MYSQL, que no tiene capacidades de administrar ese tipo de respuestas de un SP.
La solución es simple... a medias: Debes reemplazar toda codificación con la librería MYSQL y reemplazarla por la MYSQLI, que si puede hacer eso.

Nota Bene: Los SP son de sólo lectura, por lo que no funcionan para hacer UPDATE sobre las tablas leídas.
No lo olvides.
Pero a mi localmente me funciona bien. Entonces, es por la instalación de PHP que tienen en el servidor remoto, ¿no? Con la librería que usé para desarrollar funcionan perfecto los SP, y en mi servidor local también funcionan perfecto.
  #4 (permalink)  
Antiguo 14/09/2012, 19:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error al ejecutar un Stored Procedure remotamente.

Bueno, si no me crees, simplemente haz click sobre este link: PROCEDURE x can't return a result set in the given context
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 15/09/2012, 14:58
 
Fecha de Ingreso: enero-2012
Mensajes: 44
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Error al ejecutar un Stored Procedure remotamente.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Bueno, si no me crees, simplemente haz click sobre este link: [URL="lmgtfy.com/?q=mysql+PROCEDURE+can't+return+a+result+set+in+th e+given+context"]PROCEDURE x can't return a result set in the given context [/URL]
Nunca dije que no te creía... lo que digo es, ¿porqué localmente me funciona bien y en el web server mal?
  #6 (permalink)  
Antiguo 15/09/2012, 15:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error al ejecutar un Stored Procedure remotamente.

Bugs de phpMyadmin, probablemente.
En este mismo foro han aparecido ocasionalmente casos de ese tipo que se han resuelto parcialmente con la actualización de ese front-end.
Pero la verdadera solución es usar MYSQLI. Esa es por lo menos la que tuve que implementar a principios del año pasado para un site empresario, precisamente porque estaba recibiendo en un SP ese mismo mensaje. Una vez que cambié en ese caso a MySQLI, desapareció todo el problema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 15/09/2012, 16:29
 
Fecha de Ingreso: enero-2012
Mensajes: 44
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Error al ejecutar un Stored Procedure remotamente.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Bugs de phpMyadmin, probablemente.
En este mismo foro han aparecido ocasionalmente casos de ese tipo que se han resuelto parcialmente con la actualización de ese front-end.
Pero la verdadera solución es usar MYSQLI. Esa es por lo menos la que tuve que implementar a principios del año pasado para un site empresario, precisamente porque estaba recibiendo en un SP ese mismo mensaje. Una vez que cambié en ese caso a MySQLI, desapareció todo el problema.
Bien, muchas gracias por contestar.

Etiquetas: php, procedure, sql, stored
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 18:57.