Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по написанию хранимых процедур   Найти похожие ветки 

 
AndrewK   (2002-04-16 16:47) [0]

Уважаемые мастера, подскажите как можно реализовать с помощью хранимой процедуры следующую задачку. Есть некоторая выборка из группы таблиц. Есть параметры отображения на эту выборку, например, отфильтровать записи, показать не все поля и т.д. Клиентское приложение работает с хранимой процедурой, которой в качестве парметров передаются эти данные. В зависимости от этих данных надо поменять запрос к базе в процедуре.
Сейчас остановился на том, что для каждой возможной вариации пишу свой запрос а в процедуре развожу их операторами if ... else. Процедура, прямо скажем, глаз уже не радует. Можно ли как-нибудь сделать так, чтобы в зависимости от параметров можно было конструировать запрос один раз? Например что-то вроде такой конструкции (вопрос скорее по синтаксису написания хранимых процедур):

create procedure MyProc @ID int


select
*
from
Tabl

if (@ID = 1) begin
where
....

end

Процедура должна вернуть выборку из всех элементов если @ID<>1, и отфильтровать записи если @ID=1.

Возможно ли такое?


 
DPetrovich   (2002-04-16 17:04) [1]

Можно, например, написать так
select * from Tabl where ((@ID<>1) or (@ID=1 and ....))


 
roottim   (2002-04-16 17:10) [2]

yнепонятна формулировка но.. мб
if @id != 1 then
select * from ...
else
select * from .. where

2DPetrovich © (16.04.02 17:04)
@id это параметр а не поле, а если и поле то будет НД состоять из ид=1 и +те картежи которые подойдут по 2-му усл!



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

Форум: "Базы";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
3-26039
gyg
2002-04-16 21:19
2002.05.09
Можно ли узнать имя пользователя в Interbase?


7-26277
lun
2002-02-12 01:28
2002.05.09
Как зделать чтобы дочерние окна были видны как отдельные, т.е. не сворачивались с главным окном и были доступны через панель задач.


14-26264
ATLANTIDO
2002-04-02 16:04
2002.05.09
Autorun на сидюках


4-26314
dssfffffffffffff
2002-03-04 14:53
2002.05.09
Как програмно открыть CD


1-26077
MVova
2002-04-25 16:49
2002.05.09
Альтернатива SourceSafe





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский