Исходные данные:
Сервер MySQL 5.5.32 (localhost)
OS: Windows XP SP3
Lazarus-1.1-42165-fpc-2.7.1-20130721-win32
MySQL Workbench 5.2 CE
Перепахал уже весь Инет. Проблема в следующем - не могу понять как получить данные из хранимой процедуры (чисто теоретические исследования, для себя ).
Код хранимой процедуры:
- Код: Выделить всё
-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
CREATE PROCEDURE `trm`.`trm_login_user` (in login varchar(100),
in pass varchar(100),
out result_login varchar(15))
BEGIN
declare count_result integer default 0;
select COUNT(*) into count_result from trm_users where name = login and password = pass;
if count_result = 1 then
set result_login = 'yes';
else
set result_login = 'no';
end if;
END
В Lazarus создана форма , на ней
По кнопке вызывается следующая процедура:
- Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
var str_login:String;
begin
SQLQuery1.ExecSQL;
str_login:= SQLQuery1.ParamByName('@l').Value;
ShowMessage('Возвращаемое значение - '+str_login);
SQLQuery1.Active:=false;
end;
Соединение с базой данных есть. Транзакция в активном режиме. Даю простой SQL запрос (типа select) при нажатии на кнопку - всё работает. Данные в грид выводятся. Если вписываю запрос, который кстати работает в MySQL Workbench 5.2 CE так как надо,
- Код: Выделить всё
call trm_login_user('Turov','0',@l);
select @l;
Lazarus выдает ошибку
Если этот запрос вставить в редактор SQL(Lazarus) и запустить на выполнение, то выводится следующая ошибка
Т.к. программист из меня еще тот, вот и прошу помощи у знающих людей. Заранее спасибо