Вызов хранимой продцедуры из ARD

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Lavs
Посетитель
Сообщения: 30
Зарегистрирован: 29 мар 2005, 17:49

Вызов хранимой продцедуры из ARD

Сообщение Lavs »

как?
вопрос возможно и тривиальный - как из ard отчета вызвать хранимую продцедуру?
платформа
MS SQL 2000
Galaktika 7.11

Спасибо.
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

У нас тоже мс скл

Сообщение san »

Напрямую думаю что никак. Вызовы процедур в галактике реализованы на уровне драйвер-напсервер.Из прикладного кода это невозможно, т.к. нет объектов для например хранения запрошенных данных.С другой стороны для работы с логической таблицой автоматически генерятся хранимые процедуры. типа ft00000nn-для getfirst,nt0000nn-для getnext.
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Re: Вызов хранимой продцедуры из ARD

Сообщение WiRuc »

Lavs писал(а):как?
вопрос возможно и тривиальный - как из ard отчета вызвать хранимую продцедуру?
платформа
MS SQL 2000
Galaktika 7.11

Спасибо.
Что эта процедура собой представляет? Если она не возвращает данные, то можно модифицировать триггер у какой-нибудь не используемой таблицы и уже сам триггер будет вызывать нужную ХП. В принципе, таким способом можно даже данные возвращать, но для этого надо модифицировать словарь.
Lavs
Посетитель
Сообщения: 30
Зарегистрирован: 29 мар 2005, 17:49

Сообщение Lavs »

Спасибо за ответы.
В продцедуре предполагается использвать хитросплетенные запросы. Никаких модификаций с данными происходить не будут. Только выборка. Естественно она будет возвращать некий record-set который средствами ard я бы уже обрабатывал по своему усмотрению.
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

Lavs писал(а):Спасибо за ответы.
В продцедуре предполагается использвать хитросплетенные запросы. Никаких модификаций с данными происходить не будут. Только выборка. Естественно она будет возвращать некий record-set который средствами ard я бы уже обрабатывал по своему усмотрению.
Ну тогда, примерно так:
Добавляешь новую таблицу с соответствующей структурой в словарь. В эту таблицу ХП будет записывать свои результаты. Находишь какую-либо неиспользуемую таблицу, добавляешь туда 1 запись и используешь поля таблицы для передачи параметров в ХП. Модифицируешь триггер на обновление этой таблицы таким образом, чтобы он производил вызов нужной ХП, которая записывает результат своей работы в таблицу. Вот и все. Теперь в ARD отчете вызываешь оператор модификации таблицы с указанием необходимых значений полей (параметры ХП) и после этого можно сразу получать данные из таблицы-результата.
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Сообщение san »

интересный подход.можно и две таблицы создать. первая для параметров, вторая для результата. и все равно мне не понятно зачем это все надо, что бы быстрее работало чтоли...
WiRuc
Местный житель
Сообщения: 414
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Воронеж

Сообщение WiRuc »

san писал(а):интересный подход.можно и две таблицы создать. первая для параметров, вторая для результата. и все равно мне не понятно зачем это все надо, что бы быстрее работало чтоли...
В нормально написанной ХП все работает на порядки быстрее, чем в Гаалактике. Особо тяжелая отчетность у меня сделана на ХП, но в галактику я результаты не получаю.
oiko
Местный житель
Сообщения: 419
Зарегистрирован: 29 мар 2005, 17:49

Сообщение oiko »

Идеальным вариантом бы был внешний генератор отчета который мог бы вызывать вип и передавать ему параметры расчета а связь с БД генератор отчетов устанавливал своим или ODBC - драйвером сам например кристал репорт.
Ответить