Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Zeos + MySQL + TZStoredProc, Кто знает как это все заставить работать 
V
    Опции темы
Vas
Дата 18.1.2012, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Zeos 7.0.0 alpha 
Delphi 7
MySQL 5.0

Все прекрасно работает, проблем не возникало, пока не дошел до использования хранимых процедур, написал в мускуле, все как положено, выполнение 
Код

call storeproc(бла.. бла.. бла, param);

select @param;

проходит на ура, все возвращается. Но выполнить ХП через TZStoredProc никак не получается, получаю в ответ 'Unsupported operation'.
В инете пока ничего внятного не нашел, если Zeos не поддерживает хранимые процедуры MySQL, то как же выполнять их. Кто как выходит из положения или может использует другие компоненты, желательно Free.


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Akella
Дата 18.1.2012, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



а если что-то вроде select список возвращаемых параметров from procedure(список входящих параметров)

Добавлено через 1 минуту и 49 секунд
или execute procedure(список параметров)

Добавлено через 3 минуты и 53 секунды
http://www.sql.ru/forum/actualutils.aspx?a...amp;msg=2757279

Цитата
Zeos (2004 год) не поддерживает хранимые процедуры MySQL (2005 год).


Может до сих пор нет поддержки?
PM MAIL   Вверх
Vas
Дата 18.1.2012, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Цитата(Akella @  18.1.2012,  12:39 Найти цитируемый пост)
Может до сих пор нет поддержки? 

Ага, вот что разработчик отвечает
Цитата

Mysql stored procedures are not supported by the StoredProc component yet.


Вот пара интересных ссылок
http://zeos.firmos.at/viewtopic.php?t=1006...toredproc+mysql
http://zeos.firmos.at/viewtopic.php?t=459

Итак, а теперь перейдем в принципе к решению. Так как я с MySQL начал работать недавно, в связи с этим, после оракуля, тяжело понимать как процедура может возвращать набор данных, что-то типа курсора получается, но в тоже время курсор не объявляется, но не важно, так вот если у вас процедура возвращает набор данных, то все в принципе просто
Код

  with ZQuery1 do
    try
      SQL.Text:='call  whs.fetch_subtree(''office'', ''id'', ''id_parent'', 4, 0,  false, @g)';
      ZQuery1.Open;
    except
      on E:Exception do
        ShowMessage(E.Message);
    end;

после выполнения Open, в DBGrid увидим возвращенные записи, в нашем случае id всех подчиеннных подразделений, начиная с 4 id (но не суть).
Но если 6 параметр нашей процедуры поставить в True, то мы дожны получить теже id, только переданные в виде строки в параметр @g
Вот как это происходит в мускуле 
Код

mysql> call whs.fetch_subtree('office', 'id', 'id_parent', 4, 0,  true, @g);
Query OK, 0 rows affected (0.00 sec)
mysql> select @g
    -> ;
+------------------+
| @g               |
+------------------+
| 4,7,8,9,10,11,13 |
+------------------+
1 row in set (0.00 sec)

Как оказывается с выходными параметрами у Zeos тоже проблема, поэтому решено было действовать аналогично самому мускулю
Код

  with ZQuery1 do
    try
      SQL.Text:='call  whs.fetch_subtree(''office'', ''id'', ''id_parent'', 4, 0,  true, @g)';
      ZQuery1.ExecSQL;
      SQL.Text:='select @g';
      ZQuery1.Open;
    except
      on E:Exception do
        ShowMessage(E.Message);
    end;

В результате выполнения получим нужный нам результат. 

И самое важное все это работает, только при установленном свойстве ZConnection CLIENT_MULTI_STATEMENTS=1

Вот собственно пока все, у кого есть какие дополнения пишем, не стесняемся.

Добавлено через 2 минуты и 55 секунд
Все манипуляции проводились на компонентах ZEOSDBO-7.0.0-alpha


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.