Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

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

 
AlAnNik   (2006-02-02 12:59) [0]

User выбирает в Дереве, или в ЛистВью, или в Гриде несколько узлов (строк). Это внешние ключи. Их нужно передать в качестве input параметра в ХП. В BOL сказано, что курсор может быть только выходным параметром. Сделал так:
1. Передаю строку типа "123,129,137,...160"
2. В ХП создаю временную таблицу #_T
3. Инсерт этих ключей в #_T динамическим запросом
4. При отборе данных ...WHERE Id IN (SELECT ID FROM #_T)

Но как-то это коряво.
Подскажите как грамотно передать в ХП список ключей и там обработать нужные строки


 
Nikolay M. ©   (2006-02-02 13:14) [1]

http://www.sql.ru/articles/mssql/03060701ArraysAndListsInSQLServer.shtml


 
Ega23 ©   (2006-02-02 13:15) [2]

А по другому - никак. Или через строку с N ключами, или N раз SP дёргать.

Хотя можно что-то вроде этого попробовать сделать:

create procedure MyProc
@IDStr varchar(1000) =""
As
Set NoCount On
Declare
   @aSQL varchar(8000);

Set @aSQL="Select * into #Temp from Table 1 where ID in ("+@IDStr+")"
exec @aSQL

Set NoCount OFF

Select * from #Temp

Drop Table #Temp

return(0)


 
Nikolay M. ©   (2006-02-02 13:20) [3]


> Ega23 ©   (02.02.06 13:15) [2]
> А по другому - никак.

По моей ссылке лежит описание 7 методов.
Лично я для небольших наборов ID-шек использую XML.


 
AlAnNik   (2006-02-02 13:26) [4]

>Ega23 [2]

Так я и делал.

>Nikolay_N [1]
Скачал буду читать.

Всем спасибо!!


 
vuk ©   (2006-02-02 14:01) [5]

У нас используется именно разбор списка в таблицу. Причем разбор делается функцией, возвращающей таблицу. В результате запросы выглядят примерно так:


select
...
from
dbo.SomeTable t1 join
dbo.fnUTIL_ParseValueList(@ValueList, ",") vl on vl.value = t1.id
...


 
Ega23 ©   (2006-02-02 14:08) [6]


> Nikolay M. ©   (02.02.06 13:14) [1]


Интересная статья...



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

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.059 c
2-1141730473
dera
2006-03-07 14:21
2006.03.26
Как узнать координаты точки рисунка, что лежит в Image?


2-1141573596
Новочеркасский Волк
2006-03-05 18:46
2006.03.26
Заставить TIdUDPServer отправлять текст.


2-1141630475
Alex_C
2006-03-06 10:34
2006.03.26
Аналог сишного sscanf?


15-1141146376
antonn
2006-02-28 20:06
2006.03.26
С первым днем весны, товарищи!


15-1140944240
Vahan
2006-02-26 11:57
2006.03.26
Kомплексные числа . pas