Страница 1 из 1

unidac storedprocedure вызов процедуры mysql

Добавлено: Пн 29 июн 2015 07:27
DYUMON
День добрый.
Подскажите как правильно использовать storedprocedure для вызова хранимых процедур в Mysql.
процедура возвращает 1 параметр в нее ничего не передается.
процедуру примерно такая

Код: Выделить всё

CREATE PROCEDURE `my_proc`(OUT t INTEGER(11))
BEGIN
set t = 100;
END;
вызываю её из кода как

Код: Выделить всё

strorproc.stroredprocedurename:='my_proc';
strorproc.prepare;
strorproc.exute;
showmessage(stroproc.parambyname('t').asstring);
программа говорит что количество ожидаемых параметров 1 передано 0
если же добавить параметр то возвращает 0.
на данный момент делаю через uniquery

Код: Выделить всё

uniquery.sql.text:='call myproc(@a)';
uniquery.execute;
uniquery.sql.text:= 'select @a as kod';
uniquery.open;
showmessage(uniquery.fieldbyname('kod').asstring);
так программа возвращает правильное значение.
код писал по памяти могут быть синтаксические ошибки.

Re: unidac storedprocedure вызов процедуры mysql

Добавлено: Вт 30 июн 2015 11:30
ViktorV
К сожалению, мы не смогли воспроизвести проблему.
Пожалуйста, проверьте воспроизводится ли проблема на нашем UniDacDemo проекте, на вкладке 'Working with components\StoredProc'. Этот проект можно найти в папке в папке 'Demos\UniDacDemo' относительно пути, куда были проинсталлированы демо проекты UniDAC.

Re: unidac storedprocedure вызов процедуры mysql

Добавлено: Вт 30 июн 2015 16:51
DYUMON
День добрый.
Спасибо за совет, помогло. Оказалось что процедура создавалась под пользователем root, а у пользователя в программе не было прав на выполнение процедур. Теперь все работает как надо.

Re: unidac storedprocedure вызов процедуры mysql

Добавлено: Чт 02 июл 2015 10:46
ViktorV
Рады слышать, что проблема решена.
Обращайтесь к нам, если у Вас возникнут вопросы по UniDAC.