Форум: "Базы";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Базы";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.036 c