Mapserver + Mysql хранимка

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
AntonAD
Участник
Сообщения: 83
Зарегистрирован: 16 июн 2009, 10:38
Репутация: 0

Mapserver + Mysql хранимка

Сообщение AntonAD »

В данный момент один из слоев Mapserver рисует на основании данных от MySQL.

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

DATA 		"SELECT id, feature FROM layer WHERE .......", где feature - пространственные данные.
Потребовалось внести достаточно сложную логику в запрос, для чего была написана хранимка, которая отдает данные по запросу. Сама хранимка работает, проверено ручными запросами, однако попытка ее вызова

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

DATA 		"call MyPROCEDURE(unix_timestamp(now()))"
Приводит к

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

msOGRFileOpen(): OGR error. GetLayer(call MyPROCEDURE(unix_timestamp(now()))) failed for OGR connection 
Возможно вызывать хранимки в данном случае надо как то иначе или проблемы в чем то ином.
Буду благодарен за подсказку.
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Mapserver + Mysql хранимка

Сообщение Denis Rykov »

Может что-то с правами?
Spatial is now, more than ever, just another column- The Geometry Column.
AntonAD
Участник
Сообщения: 83
Зарегистрирован: 16 июн 2009, 10:38
Репутация: 0

Re: Mapserver + Mysql хранимка

Сообщение AntonAD »

Denis Rykov писал(а):Может что-то с правами?
Нет, запускаю под рутом, под рутом же пробовал запускать хранимку из под MySqlQueryBrowserб все работает.
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Mapserver + Mysql хранимка

Сообщение Denis Rykov »

Никогда не работал с MySQL, поэтому может быть вопросы глупые, но:
1) В первом варианте используется SELECT, а во втором его почему-то нет, вместо него call;
2) Что возвращает ваша функция, геометрии?
Spatial is now, more than ever, just another column- The Geometry Column.
AntonAD
Участник
Сообщения: 83
Зарегистрирован: 16 июн 2009, 10:38
Репутация: 0

Re: Mapserver + Mysql хранимка

Сообщение AntonAD »

Denis Rykov писал(а):Никогда не работал с MySQL, поэтому может быть вопросы глупые, но:
1) В первом варианте используется SELECT, а во втором его почему-то нет, вместо него call;
2) Что возвращает ваша функция, геометрии?
Сам не так силен в этом, может ошибаюсь, но
1. Насколько понимаю это стандартный вызов хранимой процедуры (SELECT уже внутри).
2. Геометрии и некоторые их свойства (id, название). проверял без свойств, только геометрии - результат тот же.
trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Mapserver + Mysql хранимка

Сообщение trir »

Может "спрятать" процедуру в View?
Tokha
Интересующийся
Сообщения: 38
Зарегистрирован: 08 апр 2011, 09:53
Репутация: 2

Re: Mapserver + Mysql хранимка

Сообщение Tokha »

А умеет ли MapServer вызывать хранимые процедуры, в виде call или exec?

У меня MSSQL. Соответственно, процедуру нельзя вызвать конструкцией select ID, GeomCol from MyPROCEDURE.
Несмотря на сложные запросы, пришлось пожертвовать некоторыми вещами и использовать VIEW.

А теперь возможно, что и от VIEW придется отказываться, т.к. в этом случае MSSQL почему-то не подхватывает пространственный индекс, в отличие от простого SELECT, где индекс подхватывается без проблем. Но с этим еще нужно детальнее разбираться.
Ответить

Вернуться в «Веб-картография»

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

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