Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Динамический массив. / 8 сообщений из 8, страница 1 из 1
17.09.2002, 16:29:10
    #32051051
Galina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический массив.
Как передать в процедуру в качестве параметра динамический массив? Или предложите альтернативное решение, пожалуйста. MS SQL Server 2000.
...
Рейтинг: 0 / 0
17.09.2002, 16:33:59
    #32051054
Sanek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический массив.
Можно использовать временную таблицу ...
...
Рейтинг: 0 / 0
17.09.2002, 16:36:28
    #32051058
Yossarian
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический массив.
Можно использовать XML.
Массив закатывается в простейший XML
вида напр.
<xml>
<Employee name="Иванов">
...
</xml>
Это можно сделать вручную, если с клиента.
А потом разбирается через OPENXML
...
Рейтинг: 0 / 0
17.09.2002, 16:39:42
    #32051062
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический массив.
Нет в TSQL не только динамических - вообще никаких массивов, если только таблицу не считать разновидностью массива. К названным обходным путям можно еще предложить параметр типа TEXT.
...
Рейтинг: 0 / 0
17.09.2002, 16:52:34
    #32051069
dkstranger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический массив.
Если я правильно понял,
вопрос связан с необходимостью
обработки процедурой
заранее неизвестного числа
/и типов/ параметров.
Для этого мы применяеем следующее

1. Временная таблица /или несколько по типам/
для хранения и передачи параметров окружения
2. Передача в качестве параметра имени
таблицы заранее определенного формата
/все операции с ней - через exec /
...
Рейтинг: 0 / 0
17.09.2002, 17:34:14
    #32051106
Jimmy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический массив.
Когда-то нашел пример обработки списка параметров (кажется здесь, на этом сайте). К сожалению, не знаю, кто автор. Посмотрите:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
ЛИСТИНГ  1 : Передача списка в хранимую процедуру.

use pubs
go

create proc p_deliminclause @input varchar( 200 )
as
declare @inclause varchar( 200 ), @position int

set @inclause = ``
set @position =  1 

 --Выделить оператор IN из входного параметра, используя запятую
 
 --(Предполагается, что между значениями находятся пробелы)
 
while (@position >  0 )
begin
  set @inclause = @inclause 
    + ```` 
    + substring(@input,  1 , patindex(`%,%`, @input) -  1 ) 
    + ```, `
  set @input = stuff(@input,  1 , patindex(`%,%`, @input) +  1  , ``)
  set @position = patindex(`%,%`, @input)
end
 --Добавить последнее значение из входного параметра в оператор IN 
 
set @inclause = @inclause + ```` + @input + ````

 --возвратить строку оператора IN (только для демонстрационных целей)
 
select @inclause

 --использовать переменную в операторе IN для исполнения запроса
 
exec (`select * from authors where au_lname in (` + @inclause + `)`)
go

 --протестировать хранимую процедуру 
 
exec p_deliminclause `green, ringer, bennett`
...
Рейтинг: 0 / 0
17.09.2002, 18:00:23
    #32051118
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический массив.
Посмотри здесь\r
/topic/12300
...
Рейтинг: 0 / 0
18.09.2002, 08:15:08
    #32051193
Galina
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический массив.
Спасибо.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Динамический массив. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]