Как стать автором
Обновить

Комментарии 11

Месье знает толк в извращениях…
У вас есть крупная ERP система в которой долго и сложно делать отчёты, но есть доступ к базе на чтение. Менеджеры хотят отчёты, которые неизвестно будут ли нужны кому-то ещё. Но при этом менеджеры не хотят учить SQL (хотя, говорят, он для них и создавался)

Почему бы не дать им возможность получать отчёты таким образом? Если отчёт будет популярным, то его уже можно будет реализовать в системе
У нас есть крупная ERP система, но в ней легко и быстро делать отчеты. И в ней НЕВОЗМОЖНО получить доступ на чтение из базы с клиентского места.
Так что мы немного иным образом решили задачу. И да, выгрузить в Excel можно.
доступ на чтение из базы с клиентского места. Фраза не очень понятна(как впрочем и Месье знает толк в извращениях…)
Вам не нужен доступ на чтение, вам нужен грант на выполнение. Процедура уже в базе.
Если мем про месье знает толк в извращениях Вам не понятен, могу только посочуствовать Вашему чувству юмора.
Про доступ — фраза означает, что ни с какого клиентского приложения или устройства невозможно выполнить произвольные SQL запросы к базе, кроме того база просто недоступна по сети с любого клиентского места или устройства.
Передача произвольных запросов в базу — огромная дырка в безопасности.
Но я же вам не анекдот рассказал. Если бы я хотел пошутить, я бы сказал:«Однажды лошадь зашла в бар...».
Я хотел получить комментарий по существу вопроса.
Про доступ, я вас не понимаю. Понятно, что обращение к процедуре не может быть у всякого. Но это вы в своей системе определяете, кому ее можно вызывать, собственно, как и права на все остальные действия. Процедура только автоматизирует создание файла. Вы не должны тратить усилия на написание Excel, и поверьте написать это не так просто. А вызывайте ее хоть из Python…
По поводу, как это может быть имплементировано с систему, можете посмотреть несколько картинок
www.samtrest.com/rm/demo.htm
Request manager for any forms application
Очень неплохо, замечательная работа. Заворачивание разовых отчетов в ексел-файлы — очень часто требуется — городить постоянный отчет а паблишере — относительно долго, а иметь инструмент для легкого и быстрого ответа аналитику на запросы, нестандартного типа — весьма полезно. А поделиться исходным кодом как-то предполагается?
равно и дальнейшее развитие и работа с архивами представляет интерес.
Неплохо. Я делаю наоборот — создаю файл Excel и в него встраиваю DataSource с запросом к БД. Выборка обновляется кнопкой Обновить на закладке Данные. Из минусов — невозможно параметризовать запрос и нужен oledb провайдер от Oracle (тот что от Microsoft плохо поддерживает utf-8)
Я намеренно все сделал в пакете, который находится в базе. Это как движок. Обращение к процедуре из любой аппликации, только передай параметры.
Понятно, что пользователь не обращается к ней напрямую. В нашей системе есть форма, где администратор заносит текст селекта и определяет, какие параметры будут ему передаваться. Кстати, там можно определить и тип запроса(отчет, Excel, процедура, скрипт shell). И есть форма, где пользователь задает параметры. Похоже на concurrent manager в Oracle ERP. Для того, чтобы ввести отчет в систему после отладки селекта нужно потратить минут 10 на определение параметров.
Дело камрада Шеффера живёт.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий