Возврат параметров из процедуры: MySQL + TSQLQuery

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Возврат параметров из процедуры: MySQL + TSQLQuery

Сообщение ab60 » 26.10.2007 13:20:46

Имеется: на MySQL 5.0.13-rc-nt - отлаженая процедура (проверяю с тестовыми параметрами в MyManager, все работает), 3 параметра входящих, 3 исходящих:

CREATE PROCEDURE `xdbregclient`(p_idapp CHAR(10), p_ws VARCHAR(40), p_vers CHAR(10), OUT o_idsession INTEGER(11), OUT o_groups TEXT, OUT o_userinfo VARCHAR(40))
...

В Лазаре (0.9.20) имеется: TMySQL50Connection и TSQLQuery. Параметры задаются процедурно:
Код: Выделить всё
    qrySession.Params.CreateParam(ftstring, 'p_idapp', ptinput);
    qrySession.Params.CreateParam(ftstring, 'p_ws', ptinput);
    qrySession.Params.CreateParam(ftstring, 'p_vers', ptinput);
    qrySession.Params.CreateParam(ftinteger, 'o_idsession', ptoutput);
    qrySession.Params.CreateParam(ftstring, 'o_groups', ptoutput);
    qrySession.Params.CreateParam(ftstring, 'o_userinfo', ptoutput);
//... тут присваиваются значения входящих, потом:
    qrySession.SQL.Add('call xdbregclient(:p_idapp,:p_ws,:p_vers,:o_idsession,:o_groups,:o_userinfo)');
    qrysession.Prepare;
    try
      qrySession.execsql;
...

и вот результат:

Error executing query: OUT or INOUT argument 4 for routine xdb.xdbregclient is not a variable

дело, как видно, не именно в "аргументе 4", а вообще в самом первом возвращаемом параметре. что-то я не так делаю? заранее инициализировать возвращаемые значения уже пробовал, также менял типы, перепроверял имена... может синтаксис CALL в перечислении возвращаемых параметров какой-то другой? и что значит "не является переменной?" т.е. является константой или чем еще?
ab60
незнакомец
 
Сообщения: 7
Зарегистрирован: 26.10.2007 11:00:58

Сообщение Attid » 26.10.2007 13:32:41

староват лазарус у вас, а значит и фпц.
там исправляли какие-то ошибки , советую емного подождать до 0,9,24 и там уже пробывать или ставить снапшет
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение ab60 » 26.10.2007 15:35:26

...нуу, конечно, процедуры в мускуле тоже относительно недавно появились, но все же не могет быть вопрос не проработан настолько уж... хотя меня уже удивили некоторые отличия реализации tsqlquery (отличия от делфей то есть).

а вообще, отступление лирическое такое: пытаюсь уйти от мелкософт-технологий и переложить свои наработки типовых бизнес-процессов и бизнес-объектов для всяких учетных приложений на свободные продухты... вспоминаю молодость и турбо-паскаль... трачу рабочее время, пока по голове на надавали тут...
ab60
незнакомец
 
Сообщения: 7
Зарегистрирован: 26.10.2007 11:00:58

Сообщение Attid » 26.10.2007 17:48:29

в таком случае агетирую на использование firebird
MySQL тоже не совсем свободный
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru