Вниз
Скачать: CL | DM;

Select к хранимой процедуре.   Найти похожие ветки 

 
Карелин Артем ©   (2005-10-20 15:07) [0]

Стоит такая задача: выбрать из хранимой процедуры удовлетворяющие определенным условиям записи. В Firebird для этих целей можно не заморачиваясь написать select <имя процедуры>, where <условие>.
В MS SQL 2000 такой номер не проходит, в SQL Books online ничего на эту тему не нашел.
Как отсеять ненужные данные из хранимой процедуры? Использовать фильтр как-то кисло.


 
Seg   (2005-10-20 15:10) [1]

А почему бы не передать параметр внутрь процедуры?


 
Карелин Артем ©   (2005-10-20 15:19) [2]

Не подходит.


 
stone ©   (2005-10-20 15:23) [3]

Получить данные из процедуры во временную таблицу.
Выбрать из нее то, что нужно.


 
Seg   (2005-10-20 15:31) [4]

Получить данные из процедуры во временную таблицу.
Выбрать из нее то, что нужно.


А фильтрация чем от этого способа отличается?


 
stone ©   (2005-10-20 15:36) [5]


> Seg   (20.10.05 15:31) [4]
> Получить данные из процедуры во временную таблицу.
> Выбрать из нее то, что нужно.
>
> А фильтрация чем от этого способа отличается?

При использовании фильтра ты получаешь данные на клиента, а так работашь с объектами сервера


 
Карелин Артем ©   (2005-10-20 15:40) [6]


> stone ©   (20.10.05 15:23) [3]

Насколько я понимаю, перед этим надо еще и создать таблицу, повторяющую по структуре хранимую процедуру, потому как для создания таблицы на основе набора данных надо использовать запрос типа Select Into, тогда как для процедур можно использовать только Insert into ... execute.
Это получается еще хуже.
Поправьте меня обязательно, если не прав, ибо новичок я в MS SQL.


 
Nikolay M. ©   (2005-10-20 15:43) [7]

http://delphimaster.net/view/3-1129642686/


 
Seg   (2005-10-20 15:44) [8]

Фильтрация на клиенте в этом случае выглядит более привлекательно, особенно на небольшом объеме данных.


 
evvcom ©   (2005-10-20 16:03) [9]


> Карелин Артем ©   (20.10.05 15:19) [2]
> Не подходит.

А аргументы?


 
Карелин Артем ©   (2005-10-20 17:34) [10]


> evvcom ©   (20.10.05 16:03) [9]

зачем?


 
evvcom ©   (2005-10-21 09:02) [11]


> Карелин Артем ©   (20.10.05 17:34) [10]
>
> > evvcom ©   (20.10.05 16:03) [9]
>
> зачем?

Что зачем? Зачем аргументировать свой ответ? А зачем тебе наш ответ?


 
Карелин Артем ©   (2005-10-21 09:19) [12]


> evvcom ©   (21.10.05 09:02) [11]


> Что зачем? Зачем аргументировать свой ответ? А зачем тебе
> наш ответ?

Если бы ты пришел в салон за машиной, а тебе упорно предлагали бы катер вместо того, что тебе надо, ты стал бы развернуто аргументировать свой отказ?
Мне нужен ответ на мой вопрос. Не всегда возможно/удобно писать запросы в виде чисто хранимой логики или клиентских запросов.


 
ЮЮ ©   (2005-10-21 09:58) [13]

В MS SQL 2000 можно писать
 select * FROM <имя UDF> ... where <условие>.

Более того, можно даже так:

 select ...
 FROM
   <имя UDF> p
   JOIN <имя таблицы> t ON p.<поле> = t.<поле>
 where <условие>.


 
Карелин Артем ©   (2005-10-21 10:13) [14]


> ЮЮ ©   (21.10.05 09:58) [13]
Точно. То, что в FB называется хранимой процедурой, в MS SQL называется функцией.


 
stone ©   (2005-10-21 10:16) [15]


> Мне нужен ответ на мой вопрос. Не всегда возможно/удобно
> писать запросы в виде чисто хранимой логики или клиентских
> запросов.

Так ты его получил. Варианта 2:
1. Пользоваться временными таблицами, (кстати очень гибкий инструмент)
2. Пользоваться Multi-Scalar функциями


 
Ega23 ©   (2005-10-21 10:19) [16]

Вреенная таблица. Насчёт функции - тут надо осторожно, т.к. лично я знаю множество контор, которые как работали на MS SQL 7, так и не собираются с него уходить. А там функции не поддерживаются...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.026 c
3-1129634534
СергейГР
2005-10-18 15:22
2005.12.04
_небольшая_ база данных


2-1131884704
Erick
2005-11-13 15:25
2005.12.04
Подбор пароля по двум символам


2-1132210863
diwww
2005-11-17 10:01
2005.12.04
Ошибка при закрытии одной из одинаковых форм


14-1130773681
Piter
2005-10-31 18:48
2005.12.04
Знатокам JavaScript


14-1131633663
Хинт
2005-11-10 17:41
2005.12.04
Функции DLL




   Наверх