Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Выполнить хранимую процедуру


Автор: Delphist 10.11.2006, 09:20
У меня есть хранимая процедура, код которой хранится в БД. Выполнить её из приложения не вызывает проблем - пишем в select'e FIBDataSet'а execute procedure MY_PROC. Вопрос в следующем, а как выполнить хранимую процедуру, если её код хранится не в БД, а в приложении. 

Автор: Akella 10.11.2006, 09:42
Сначала нужно её создать в БД, т.е. Create Procedure, потом выполнить, потом удалить.

Автор: superVad 10.11.2006, 09:47
динамически создать в БД эту процедуру (CREATE PROCEDURE... в Query и Query.ExecProc)

выполнить ее

удалить (если надо)

без шуток

(пока я писал Akella уже отписался - оперативно однако  smile )

Автор: Akella 10.11.2006, 09:50
думаю, что не получиться, по крайней мере с Classic Server, т.к. после создания хранимки нужно отключать всех клиентов.

Автор: Dremlin 10.11.2006, 09:55
а смысл создавать и удалять процедуру, если можно просто выполнить ее текст?

Автор: Akella 10.11.2006, 10:00
Цитата(Dremlin @  10.11.2006,  09:55 Найти цитируемый пост)
сли можно просто выполнить ее текст? 

да? а для чего тогда придумали PSQL и DSQL???

Автор: Delphist 10.11.2006, 10:01
Цитата(Dremlin @ 10.11.2006,  10:55)
а смысл создавать и удалять процедуру, если можно просто выполнить ее текст?

Как? Как обычный Sql - не катит. smile

Добавлено @ 10:06 
Цитата(Akella @  10.11.2006,  11:00 Найти цитируемый пост)
да? а для чего тогда придумали PSQL и DSQL??? 

Оъясню зачем мне нужно, чтобы текст процедуры хранился в программе. Пользователь в моей проге отмечает галкой нужный пункт. Прога генерит скрипт хранимой процедуры, который должен быть выполнент. Таких пунктов может быть до 20 штук - не хранить же мне в БД 20 хранимых процедур. Через параметры процедуры не получится т.к. текст процедуры меняется довольно сильно.

Автор: superVad 10.11.2006, 10:18
пиши одну процедуру - внутри ее 20 и выбор одной из них по параметру

Автор: Akella 10.11.2006, 10:44
Цитата(Delphist @  10.11.2006,  10:01 Найти цитируемый пост)
Как? Как обычный Sql - не катит. smile

нет, как обычный SQL есть DSQL - динамический SQL.

Добавлено @ 10:46 
Цитата(Delphist @  10.11.2006,  10:01 Найти цитируемый пост)
не хранить же мне в БД 20 хранимых процедур. 

вопрос на засыпку - почему не хранить? ПОЧЕМУ? Объясни, дай внятный ответ.

Автор: Vas 10.11.2006, 10:57
Одна процедура с 20 параметрами, в зависимости от параметров делаем то что нужно и все  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)