![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
djkostya |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 16.5.2006 Где: Москва Репутация: 1 Всего: 2 |
Ребята есть процедура в Mysql 5
CREATE PROCEDURE `p`() COMMENT 'Procedure' SELECT * FROM test; Вопрос а как обратиться из под DBI к этой процедуре Вроде должно быть call только она не пашет.... |
|||
|
||||
comtat |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1310 Регистрация: 2.5.2006 Где: Россия, Казань Репутация: нет Всего: 71 |
Т.е не пашет ? А что говорит ? И как ты ее вызываешь ?
Добавлено @ 11:25 вот так нужно вызывать
-------------------- Рожденный в СССР !!! ExtJS - мой фреймворк |
|||
|
||||
djkostya |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 16.5.2006 Где: Москва Репутация: 1 Всего: 2 |
DBD::mysql::st execute failed: PROCEDURE agent.proc5 can't return a result set in the given context at test_dbi.pl line 39.
Добавлено @ 11:51 Мне нажо чтоб в обратку пришли данные |
|||
|
||||
comtat |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1310 Регистрация: 2.5.2006 Где: Россия, Казань Репутация: нет Всего: 71 |
Ошибка говорит что не может возвратить набор результата в данном контексте
а че на в test_dbi.pl line 39 ?? -------------------- Рожденный в СССР !!! ExtJS - мой фреймворк |
|||
|
||||
djkostya |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 16.5.2006 Где: Москва Репутация: 1 Всего: 2 |
Ну это скрипт и строка в скрипте...
Не подскажешь куда копать???????????? |
|||
|
||||
comtat |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1310 Регистрация: 2.5.2006 Где: Россия, Казань Репутация: нет Всего: 71 |
Че в этой строке делается ??
не там ли вызывается эта процедура ?? -------------------- Рожденный в СССР !!! ExtJS - мой фреймворк |
|||
|
||||
djkostya |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 16.5.2006 Где: Москва Репутация: 1 Всего: 2 |
my $sth = $dbh->prepare(qq{CALL p()});
$sth->execute(); my @site; while (my @row = $sth->fetchrow_array() ){ print "$row[0]<br>"; } В 39 вызываеться $sth->execute(); Толк то Пробовал и так my $sth = $dbh->prepare("CALL p()"); $sth->execute(); |
|||
|
||||
djkostya |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 16.5.2006 Где: Москва Репутация: 1 Всего: 2 |
Самое интересное что в командной строке она нормально выполняеться
|
|||
|
||||
comtat |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1310 Регистрация: 2.5.2006 Где: Россия, Казань Репутация: нет Всего: 71 |
Если ты написал в командной CALL p()
и все сработало, а в перле не работает, значит синтаксически все правильно... Очень похоже на несовпадение версий... Сервак 5, а клиент 3... например -------------------- Рожденный в СССР !!! ExtJS - мой фреймворк |
|||
|
||||
djkostya |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 16.5.2006 Где: Москва Репутация: 1 Всего: 2 |
Нет всё ставил из портов
p5-DBD-mysql50-3.0006 Mysql 5.0.22 DBI 1.51 Вопрос вобще кто нибудь их нормально запустил эти процедуры... Это сообщение отредактировал(а) djkostya - 20.7.2006, 13:53 |
|||
|
||||
comtat |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1310 Регистрация: 2.5.2006 Где: Россия, Казань Репутация: нет Всего: 71 |
Я даже не знаю чем, тебе щас помочь у меня варианты закончились
![]() -------------------- Рожденный в СССР !!! ExtJS - мой фреймворк |
|||
|
||||
comtat |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1310 Регистрация: 2.5.2006 Где: Россия, Казань Репутация: нет Всего: 71 |
я делаю так создаю *.pm файл в нем процедуру
А из *.pl вызываю так
Может применишь такой способ ?? ![]() Это сообщение отредактировал(а) comtat - 27.7.2006, 07:56 -------------------- Рожденный в СССР !!! ExtJS - мой фреймворк |
||||
|
|||||
djkostya |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 16.5.2006 Где: Москва Репутация: 1 Всего: 2 |
Короче проблема решена объясняю в чём было дело...
Если у вас стоит ниже этого DBD-mysql-3.0008_1 то хранимые процедуры пахать не будут будут пахать максимум функции.... Для соединения с базой пользуемся my $dbh = DBI->connect("DBI:mysql:database=$base;host=$hostname;mysql_multi_results=1", "$user", "$password"); Это бяка должна стоять обязательно mysql_multi_results=1 Добавлено @ 21:39 Добавлю под mod_perl часто возникает такая ошибка плохо или хорошо я не знаю, так но вроде пашет DESTROY: Error Commands out of sync; you can't run this command now while close stmt |
|||
|
||||
comtat |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1310 Регистрация: 2.5.2006 Где: Россия, Казань Репутация: нет Всего: 71 |
Как и предпологались проблема в версии
спасибо за инфу возможно прегодится -------------------- Рожденный в СССР !!! ExtJS - мой фреймворк |
|||
|
||||
djkostya |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 16.5.2006 Где: Москва Репутация: 1 Всего: 2 |
Блин ну я псих
Народ что знали все mysql_multi_results=1 отключите её нафиг.....если вы используете хранимые более чем один раз в скрипте... И включите тогда когда вам надо с базы вытаскивать большие запросы.... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |