Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

тип параметра "множество" [MSSQL]


Bogdan1024 ©   (2007-07-13 14:08:00) 

Хочу в MSSQL2005 создать хранимую процедуру вроде такой:
SELECT * FROM A WHERE ID IN @IDs
Какого типа должен быть параметр @IDs? Как это записать?


Bogdan1024   (2007-07-13 16:43:00) [1]

> Ну во-первых она может и гораздо сложнее быть.
> А во-вторых, лично у меня всё только через ХП.
Yes to All


Jan1   (2007-07-13 16:10:00) [2]


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

вопрос был именно про такую ХП.


> А во-вторых, лично у меня всё только через ХП.

ничего хорошего в крайностях нет...


Ega23   (2007-07-13 16:05:00) [3]


> в чем сакральный смысл такой ХП?


Ну во-первых она может и гораздо сложнее быть.
А во-вторых, лично у меня всё только через ХП.


Jan1   (2007-07-13 15:55:00) [4]


> SELECT * FROM A WHERE ID IN @IDs

в чем сакральный смысл такой ХП?


Desdechado   (2007-07-13 15:54:00) [5]

Еще как вариант, эти натыканные юзером можно складывать во временную таблицу, и потом юзать ее. Но это подходит в случае, когда много запросов используют одно множество. Для одного-двух это хуже, чем динамическая лепка.


Bogdan1024   (2007-07-13 15:41:00) [6]

Ega23> Почему????
Я> Ну, я это имел ввиду:
Desdechado> Динамическая лепка хоть и красива, но больно бьет по серверу.
Я> :)


Desdechado   (2007-07-13 15:17:00) [7]

Как вариант, сформировать это множество как выборку из другой таблицы по какому-нибудь групповому признаку. Хотя это не всегда и возможно (например, нужно использовать "что юзер натыкал", а тут никакого группового признака не найти).


Desdechado   (2007-07-13 15:16:00) [8]

Это не параметризуется, увы.
А динамическая лепка хоть и красива, но больно бьет по серверу.


Ega23   (2007-07-13 15:09:00) [9]


> Ega23, спасибо!!! Но такой же способ не позволяет круто
> скомпилировать хранимую процедуру, жаль :(


Почему????


> MsGuns, а что такое ХП?


ХП - Хранимая Процедура


Bogdan1024   (2007-07-13 15:03:00) [10]

Ega23, спасибо!!! Но такой же способ не позволяет круто скомпилировать хранимую процедуру, жаль :(
MsGuns, а что такое ХП?


MsGuns   (2007-07-13 14:23:00) [11]

Если невозможно заранее определить кол-во входных параметров, то мы делаем просто: параметр один - строковый, а ХП еге "режет" на кусочки, которые и пихает в запросы например


Ega23   (2007-07-13 14:12:00) [12]

varchar
а выполнять - exec('SELECT * FROM A WHERE ID IN (' + @IDs + ')');


Наверх

Титульная страница Поиск, карта сайта Написать письмо