Pascalvgemert
Nieuwe gebruiker
- Lid geworden
- 29 sep 2009
- Berichten
- 1
Ik probeer gebruik te maken van de volgende stored procedure, echter als ik hem probeer uit te voeren krijg ik een foutmelding:
DELIMITER //
DROP PROCEDURE IF EXISTS geodist//
CREATE PROCEDURE geodist (IN mylat double, IN mylon double, IN dist int)
BEGIN
declare lon1 float; declare lon2 float;
declare lat1 float; declare lat2 float;
-- calculate lon and lat for the rectangle:
set lon1 = mylon - dist / abs(cos(radians(mylat))*69);
set lon2 = mylon + dist / abs(cos(radians(mylat))*69);
set lat1 = mylat - (dist / 69);
set lat2 = mylat + (dist / 69);
-- run the query:
SELECT *,
3956 * 2 * ASIN(SQRT( POWER(SIN((mylat - SightLatitude)
* pi() /180 / 2), 2) +
COS(mylat * pi()/180) * COS(SightLatitude * pi()/180) *
POWER(SIN((mylon - SightLongitude) * pi() /180 / 2), 2) )) as
SightDistance FROM lay_sights
WHERE SightLongitude BETWEEN lon1 AND lon2 AND SightLatitude BETWEEN lat1 AND lat2
HAVING SightDistance < dist
ORDER BY SightDistance;
END //
DELIMITER ;
De foutmelding:
CALL geodist( 51.725198, 5.370899, 10 )
MySQL retourneerde: #1312 - PROCEDURE c2kdev_layar.geodist can't return a result set in the given context
Heeft iemand een oplossing of weet iemand waar het aan zou kunnen liggen?
Bij voorbaat dank,
Pascal
DELIMITER //
DROP PROCEDURE IF EXISTS geodist//
CREATE PROCEDURE geodist (IN mylat double, IN mylon double, IN dist int)
BEGIN
declare lon1 float; declare lon2 float;
declare lat1 float; declare lat2 float;
-- calculate lon and lat for the rectangle:
set lon1 = mylon - dist / abs(cos(radians(mylat))*69);
set lon2 = mylon + dist / abs(cos(radians(mylat))*69);
set lat1 = mylat - (dist / 69);
set lat2 = mylat + (dist / 69);
-- run the query:
SELECT *,
3956 * 2 * ASIN(SQRT( POWER(SIN((mylat - SightLatitude)
* pi() /180 / 2), 2) +
COS(mylat * pi()/180) * COS(SightLatitude * pi()/180) *
POWER(SIN((mylon - SightLongitude) * pi() /180 / 2), 2) )) as
SightDistance FROM lay_sights
WHERE SightLongitude BETWEEN lon1 AND lon2 AND SightLatitude BETWEEN lat1 AND lat2
HAVING SightDistance < dist
ORDER BY SightDistance;
END //
DELIMITER ;
De foutmelding:
CALL geodist( 51.725198, 5.370899, 10 )
MySQL retourneerde: #1312 - PROCEDURE c2kdev_layar.geodist can't return a result set in the given context
Heeft iemand een oplossing of weet iemand waar het aan zou kunnen liggen?
Bij voorbaat dank,
Pascal