Hi,
For some reasons I've to use Stored procedure With Freeradius but I am getting following error from mysql:
Error: 1312 SQLSTATE: 0A000 (ER_SP_BADSELECT)
Message: PROCEDURE %s can't return a result set in the given context
You can consider the following example:
Instead of following authorize_check_queryauthorize_check_query = "SELECT id, UserName, Attribute, Value, op, uid \
FROM ${authcheck_table} \
WHERE Username = '%{SQL-User-Name}' \
ORDER BY id"
I want to use this:
authorize_check_query = "CALL molo('%{SQL-User-Name}')"
And this is my stored proc in mysql:
DELIMITER $$;DROP PROCEDURE IF EXISTS `radius`.`molo`$$
CREATE PROCEDURE `molo`(did VARCHAR(10))
BEGIN
DECLARE rid INT;
DECLARE ruid VARCHAR(15);
DECLARE rattr VARCHAR(15);
DECLARE rop CHAR(2);
DECLARE rval VARCHAR(10);
SELECT id, UserName, Attribute, Value, op INTO rid,ruid,rattr,rop,rval from radcheck WHERE UserName=did;
SELECT rid,ruid,rattr,rop,rval;
END$$
DELIMITER;$$
I can call this stored proc From any my sql client successfully, but if I call it from sql.conf it give s error: 1312.
Any solution please?
Thanks in advance
Saeed Ahmed.
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Perhaps it's happen because the field name returned by the molo procedure.
I think you have to use UserName insted of ruid because UserName field already mapped to User-Name Attribute. Or you have to change how freeradius map the attributes with field in your database.
Regards
Agus
--
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS d(-) s:- a--- C++(+++)$>++++$ UL$>++++$ P+? L++$>$ !E--- W++ !N !o !K-- w !O M !V PS PE !Y PGP t 5 X R tv b DI D G e h r y
------END GEEK CODE BLOCK------
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html