![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хранимые процедуры в Interbase [IB6.x]
a3a3ello © (2004-11-22 14:27:00)Можно ли и как в ХП Interbase сформировать текст SQL запроса в зависимости от переданных параметров. Например в зависимости от Param= 1 или 0, В итоговом запросе присутствует или отсутствует поле field1.
Спасибо.
vuk (2004-11-22 17:35:00) [1]to Vemer © (22.11.04 17:16) [10]:
>Не MS-SQL.
В MSSQL тоже есть некоторые проблемы с использованием динамически формируемых запросов. Проблема с правами. Там такие запросы будут выполняться не с правами владельца процедуры, а с правами вызывающего пользователя.
Vemer (2004-11-22 17:16:00) [2]To msguns:
под IB/FB такое не приветствуеться. Не MS-SQL.
msguns (2004-11-22 15:29:00) [3]А не проще ли создать ХП, потом ее выполнить, ну и грохнуть ее в конце ?
А, что, обычный динамический запрос Кораном запрещен ?
stud (2004-11-22 15:21:00) [4]
> и даже если ты откажешься от IB в пользу FB 1.5.1 (в
> надежде заюзать EXECUTE STATEMENT), то от кучи IFов
> тебе все равно не избавиться.
тут можно строку запроса формировать на клиенте и передавать ее в качестве параметра. но тогда возникает вопрос по поводу выходных параметров
Digitman (2004-11-22 14:54:00) [5]
> a3a3ello (22.11.04 14:44) [3]
> Похоже, Johnmen предлагает написать два запроса и выполнять
> один из них в зависимости от значение Param.
> Мне это не подходит т.к. на самом деле параметров много
> и у каждого несколько значений. Т.е. записывать все варианты
> запросов несколько обременительно
и правильно предлагает.
и даже если ты откажешься от IB в пользу FB 1.5.1 (в надежде заюзать EXECUTE STATEMENT), то от кучи IFов тебе все равно не избавиться.
stud (2004-11-22 14:51:00) [6]execute staitment и выбирай что хочеш откуда хочеш если использовать FB 1.5
Johnmen (2004-11-22 14:49:00) [7]>a3a3ello
В IB по-другому невозможно.
a3a3ello (2004-11-22 14:44:00) [8]Похоже, Johnmen предлагает написать два запроса и выполнять один из них в зависимости от значение Param.
Мне это не подходит т.к. на самом деле параметров много и у каждого несколько значений. Т.е. записывать все варианты запросов несколько обременительно.
Жук (2004-11-22 14:44:00) [9]2 Автор
А зачем ?
msguns (2004-11-22 14:37:00) [10]>Johnmen © (22.11.04 14:34) [1]
И как же в приведенном тобою примере решается вопрос "фантомности" поля field1 ? &;)
Johnmen (2004-11-22 14:34:00) [11]
IF (Param=1) THEN SELECT #1
ELSE SELECT #2