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

Concaternar valores en una funcion.

Estas en el tema de Concaternar valores en una funcion. en el foro de Mysql en Foros del Web. Hola estoy intentando agregarle una funcino a mysql para el calculo de distacia entre dos puntos , con esta funcion no me funciona me retorna ...
  #1 (permalink)  
Antiguo 02/08/2011, 11:26
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años
Puntos: 15
Concaternar valores en una funcion.

Hola estoy intentando agregarle una funcino a mysql para el calculo de distacia entre dos puntos , con esta funcion no me funciona me retorna null no se porque.

Código MySQL:
Ver original
  1. -- Switch delimiter so the ; will work in the function body
  2. DELIMITER $$
  3.  
  4. -- Create the function
  5.     COMMENT 'Calculate the distance between two points'
  6.     BEGIN
  7.         RETURN glength(linestringfromwkb(linestring(asbinary(a), asbinary(b))));
  8.     END$$
  9.  
  10. -- Switch the delimiter back to ;
  11. DELIMITER ;

pero si cambio el select por algo asi

Código MySQL:
Ver original
  1. SELECT GLength(GeomFromText('linestring(-74.03030396 4.6709496582031,-74.556452 4.670076531)'));


si me funciona, pero no se como hacer para colocar los parametros de la funcion dentro de la consulta.



saludos
  #2 (permalink)  
Antiguo 02/08/2011, 12:05
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años
Puntos: 15
Respuesta: Concaternar valores en una funcion.

Creo que deberia ir asi

Código MySQL:
Ver original
  1. -- Switch delimiter so the ; will work in the function body
  2. DELIMITER $$
  3.  
  4. -- Create the function
  5.     COMMENT 'Calculate the distance between two points'
  6.     BEGIN
  7.         RETURN GLength(GeomFromText('linestring(', a ,',', b ,')'));
  8.     END$$
  9.  
  10. -- Switch the delimiter back to ;
  11. DELIMITER ;


Pero me sale un error al crear la funcion


Script line: 5 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '',', b ,')'));
END' at line 5


que puede ser?


saludos
  #3 (permalink)  
Antiguo 02/08/2011, 14:57
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años
Puntos: 15
Respuesta: Concaternar valores en una funcion.

ya me di cuenta que el problema es por la forma en que concatene en el return , pero de que forma puedo hacer esto?


saludos
  #4 (permalink)  
Antiguo 02/08/2011, 16:50
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: Concaternar valores en una funcion.

Con la función CONCAT(), que en MySQL no tiene límite de parámetros.
Código MySQL:
Ver original
  1. DELIMITER $$
  2.     COMMENT 'Calculate the distance between two points'
  3.     BEGIN
  4.         RETURN GLength(GeomFromText(CONCAT('linestring(', a ,',', b ,')')));
  5.     END$$
  6. DELIMITER ;
__________________
¿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 03/08/2011, 12:27
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años
Puntos: 15
Respuesta: Concaternar valores en una funcion.

muchas gracias , pensé en un principio en utilizarla pero no sabia que no tiene limite de parámetros.

saludos

Etiquetas: select, sql
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 08:58.