Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Передача параметра в агрегатную функцию (CLR)  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Использую несколько агрегатных функций, написанных на C#
В том числе и конкатенация строк. А можно как-нибудь управлять символом разделителем, который используется для соединения строки в методе Accumulate (у меня используется запятая). Есть способ передать в это метод параметр-символ разделитель?

С уважением, Алексей.
28 май 09, 15:07    [7240123]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра в агрегатную функцию (CLR)  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Если в Ваших данных разделитель встретиться не может (например, запятая в фамилии вряд ли будет)
то после получения результата просто сделайте replace
28 май 09, 15:14    [7240187]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра в агрегатную функцию (CLR)  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Паганель
Если в Ваших данных разделитель встретиться не может (например, запятая в фамилии вряд ли будет)
то после получения результата просто сделайте replace

Это очевидное решение и меня, к сожалению, не устраивает.
С уважением, Алексей
28 май 09, 15:17    [7240213]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра в агрегатную функцию (CLR)  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
а пусть тогда в качестве разделителя в C# функции будет какое-то сочетание символов,
которое по-любому не встретится (три собачки например... ну данные Ваши, Вам виднее...)

и тогда уже replace
так пойдет?
28 май 09, 15:19    [7240228]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра в агрегатную функцию (CLR)  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
можно сделать 2 функции
первая - собирает строки в varbinary с длиной, вторая - разбирает varbinary строки с переданным разделителем
28 май 09, 15:29    [7240312]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра в агрегатную функцию (CLR)  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Паганель
а пусть тогда в качестве разделителя в C# функции будет какое-то сочетание символов,
которое по-любому не встретится (три собачки например... ну данные Ваши, Вам виднее...)

и тогда уже replace
так пойдет?

Не пойдет, к сожалению:
1.Пока работаем на SQL 2005 - ограничение в 8000 символов в результирующей строке и так поджимает, а тут еще и разделители композитные добавлять ... Вот перейдем на SQL 2008...
2. Лишняя массовая операция... тоже не очень нравится... потери времени.

Я так понял по вашим ответам, что в метод Accumulate класса нельзя ничего добавить ?
С уважением, Алексей.
28 май 09, 15:35    [7240359]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра в агрегатную функцию (CLR)  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Aleksey-K
Я так понял по вашим ответам, что в метод Accumulate класса нельзя ничего добавить ?
Я не знаю способа туда что-то добавить
К предложению Зайцева Федора рекомендую прислушаться
Мысль хорошая
28 май 09, 15:39    [7240387]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра в агрегатную функцию (CLR)  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Зайцев Фёдор
можно сделать 2 функции
первая - собирает строки в varbinary с длиной, вторая - разбирает varbinary строки с переданным разделителем

Так я и спрашиваю, как в агрегат передать параметр?
С уважением, Алексей
28 май 09, 15:47    [7240444]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра в агрегатную функцию (CLR)  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Aleksey-K
Зайцев Фёдор
можно сделать 2 функции
первая - собирает строки в varbinary с длиной, вторая - разбирает varbinary строки с переданным разделителем

Так я и спрашиваю, как в агрегат передать параметр?
С уважением, Алексей
а вторая функция не будет агрегатом
28 май 09, 15:49    [7240463]     Ответить | Цитировать Сообщить модератору
 Re: Передача параметра в агрегатную функцию (CLR)  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Можно и так, но тогда проще просто сделать REPLACE на агрегатной функцией..
Спасибо.
С уважением, Алексей
28 май 09, 16:06    [7240635]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить