Я создал хранимую процедуру для доступа к учетным данным из FreeRADIUS, которая была протестирована в MySQL Workbench и работает нормально, но при запуске как cfquery/cfstoredproc я получаю сообщение об ошибке «Неверные аргументы для EXECUTE».
Я проверил, что драйвер настроен для MySQL 4/5 (база данных — MySQL 5), и попытался скопировать и вставить вызов из MySQL Workbench и запустить его без использования cfqueryparam, как показано ниже, но он по-прежнему возвращает ту же ошибку.
Хранимая процедура была создана с
DELIMITER $$
CREATE PROCEDURE radius.GetUserDataUsageForMonth(IN StartDate DATE, IN EndDate DATE, IN UserName
VARCHAR(100))
BEGIN
SET @records = (SELECT COUNT(UserName) FROM `radius`.`radacct` WHERE userName = @UserName AND AcctStartTime BETWEEN @StartDate AND @EndDate) - 1;
SET @SqlQuery = 'SELECT SUM(AcctOutputOctets) AS BytesIN, SUM(AcctInputOctets) AS BytesOUT FROM
(SELECT * FROM `radius`.`radacct` WHERE userName = @UserName AND AcctStartTime BETWEEN @StartDate AND @EndDate LIMIT ?
UNION ALL
SELECT * FROM `radius`.`radacct` WHERE userName = @UserName AND AcctStartTime < @StartDate ORDER BY AcctStartTime DESC LIMIT 1) AS Totals;';
PREPARE stmt FROM @SqlQuery;
EXECUTE stmt USING @records;
DEALLOCATE PREPARE stmt;
END $$
DELIMITER ;
Чтобы вызвать это, я использую:
<cfquery name="qRadAccount_currentData" datasource="#application.datasource_radius#">
CALL radius.GetUserDataUsageForMonth('2011-06-01','2011-07-01','ryan.french');
</cfquery>
я тоже пробовал
<cfstoredproc procedure="radius.GetUserDataUsageForMonth" datasource="#application.datasource_radius#" result="qRadAccount_currentData">
<cfprocparam cfsqltype="cf_sql_date" value="2011-06-01">
<cfprocparam cfsqltype="cf_sql_date" value="2011-07-01">
<cfprocparam cfsqltype="cf_sql_varchar" value="ryan.french">
</cfstoredproc>
EXECUTE stmt USING ...
? Это одна из причин ошибкиIncorrect arguments to EXECUTE
. rpbouman.blogspot.com/2005/11/ - person Leigh   schedule 24.06.2011CREATE PROCEDURE radius.GetUserDataUsageForMonth(IN StartDate DATE, IN EndDate DATE, IN UserName VARCHAR(100)) BEGIN END
- person Leigh   schedule 24.06.2011