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

Откуда:
Сообщений: 371
Вообщем задача создать таблицу для передачи инфы сразу нескольким клиентам. Сам-то в T-SQL не очень силен но про тригеры в курсе. Вставляю данные и они у меня автоматом в нужные места полетят, но вот дилема... В шарпе к примеру есть тип перечесление: ввел название экземпляра перечесления(ENUM), поставил точку, и предо мной возникает список того что в нем присутствует. То есть мне нужно как-то при запросе выдать список возможных вариантов клиентов. Реально такое в T-SQL или же нет?
А то единственное что я тут вижу - это обьявить тип текста и вводить туда клиентов через запятую, а в тригере разбивать строку. Как кстати это в T-SQL делается (нужна функция потипу шарповского string[] Clients = String.Split(',') ).

Заранее спасибо!
9 июн 13, 09:40    [14411076]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
sanekoffice
Вообщем задача создать таблицу для передачи инфы сразу нескольким клиентам. Сам-то в T-SQL не очень силен но про тригеры в курсе. Вставляю данные и они у меня автоматом в нужные места полетят, но вот дилема... В шарпе к примеру есть тип перечесление: ввел название экземпляра перечесления(ENUM), поставил точку, и предо мной возникает список того что в нем присутствует. То есть мне нужно как-то при запросе выдать список возможных варианxтов клиентов. Реально такое в T-SQL или же нет?
А то единственное что я тут вижу - это обьявить тип текста и вводить туда клиентов через запятую, а в тригере разбивать строку. Как кстати это в T-SQL делается (нужна функция потипу шарповского string[] Clients = String.Split(',') ).

Заранее спасибо!

Все смешалось в кучу - кони, люди. Вы бы постановку задачи написали, а не поток сознания. Я например , не понял - нужен интеллисенс или рассылка чего то - кому то.
9 июн 13, 10:33    [14411108]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
sanekoffice
Member

Откуда:
Сообщений: 371
Структура таблицы такая:
TABLE (Название компании , список Получателей)

Компания может передать письмо сразу нескольким получателем в одном запросе

Из вариантов вижу только текст, то есть
INSERT INTO (' MyCompany ' , ' Man1, Man2, Man3 ');

мне нужно получить массив из списка Людей, примерно так:
@Man1 = Man1
@Man2 = Man2
@Man3 = Man3

Какой функцией организовать разбиение строчки второго параметра?
9 июн 13, 11:03    [14411131]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
Glory
Member

Откуда:
Сообщений: 104760
sanekoffice
Структура таблицы такая:
TABLE (Название компании , список Получателей)

Это вы такую структуру придумали ?

sanekoffice
Какой функцией организовать разбиение строчки второго параметра?

Самописной. Или взятой из Интернета.
9 июн 13, 11:14    [14411140]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
sanekoffice
Member

Откуда:
Сообщений: 371
Это тестовое задание, сам бы я конечно реализовал все по другому.
А по поводу функции можно конкретней.
С точки зрение шарпа,к примеру, задача пулевая:
string [] Mans = argument2.Split(',') ; На выходе получим массив людей. Другое дело что в T-SQL массивов нет. Мне всего то надо пробежатся по этим людям и вызвать для каждого определенную функцию
9 июн 13, 11:23    [14411143]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
sanekoffice
Member

Откуда:
Сообщений: 371
Вообще задание такое:
Реализовать таблицу для рассылки сообщений одной из компании, списку клиентов.
Таблички для компаний есть, для клиентов тоже.
9 июн 13, 11:28    [14411148]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
Glory
Member

Откуда:
Сообщений: 104760
sanekoffice
Реализовать таблицу для рассылки сообщений одной из компании, списку клиентов.

И вы считаете, что TABLE (Название компании , список Получателей) есть лучший вариант такой реализации ?
9 июн 13, 11:29    [14411151]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
Glory
Member

Откуда:
Сообщений: 104760
sanekoffice
А по поводу функции можно конкретней

Вбиваете в строке поиска слово "парсинг"
9 июн 13, 11:31    [14411152]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
sanekoffice
Member

Откуда:
Сообщений: 371
автор
И вы считаете, что TABLE (Название компании , список Получателей) есть лучший вариант такой реализации ?


Я же говорю что в T-SQL толком не разбираюсь. Всегда писал на шарпе а с табличками работал только на вставку удаление и ТД... то есть простой SQL-запрос

Про парсинг почитаю, спасибо за наводку.
9 июн 13, 11:41    [14411166]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
qwerty112
Guest
sanekoffice
Вообще задание такое:
Реализовать таблицу для рассылки сообщений одной из компании, списку клиентов.
Таблички для компаний есть, для клиентов тоже.

ТС, имхо, вы со своей "погружонностью в шарп"
просто не поняли задание :)

от вас просят создать таблицу рассылки / связать компании и клиентов, которым эти компании "рассылают" М:М
нужно сделать доп.таблицу {ид_комп, ид_клиент} и какбэ - псё!

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

как-то так ...
9 июн 13, 11:43    [14411167]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
sanekoffice
Member

Откуда:
Сообщений: 371
Ну да, так все выглядит проще и понятнее) А то я уже в тригеры полез. Дай думаю переопределю операцию вставки в табличку)

Всем спасибо, короче, за понимание. Вопрос закрыт!
9 июн 13, 11:53    [14411175]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
AnaceH
Member

Откуда:
Сообщений: 109
sanekoffice,

Вообще, Вы бы опубликовали задание в оригинале, а не вашу интерпретацию. Делать его за вас конечно никто не будет, но и вникать в психодел\вытягивать детали желающим помочь не придется.
9 июн 13, 11:55    [14411178]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
sanekoffice
Member

Откуда:
Сообщений: 371
Выкладывать на форум оригинальный текст теста плохая примета - сюда и работодатель может зайти. А так конечно да, вы правы.
9 июн 13, 12:06    [14411185]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34621
sanekoffice
автор
И вы считаете, что TABLE (Название компании , список Получателей) есть лучший вариант такой реализации ?


Я же говорю что в T-SQL толком не разбираюсь. Всегда писал на шарпе а с табличками работал только на вставку удаление и ТД... то есть простой SQL-запрос

Про парсинг почитаю, спасибо за наводку.


парсинг тут ни при чём можешь не читать.
9 июн 13, 12:12    [14411192]     Ответить | Цитировать Сообщить модератору
 Re: Перечесление вариантов при запросе  [new]
Алексей Куренков
Member [заблокирован]

Откуда: Москва
Сообщений: 567
sanekoffice,

Для этих целей можно использовать
1. XML
2. тип AS TABLE...

пример
create type t_table as table (i int)
go

create proc myproc_table
	@table t_table readonly
as
	select * from @table
go

create proc myproc_xml
	@xml xml
as
	select x.i.value('.','varchar(100)') as i
	from @xml.nodes('/root/i') x(i)
go


declare @t t_table insert @t values (1),(2),(5)
declare @xml xml = (select * from @t for xml path('root'))

exec myproc_table @t
exec myproc_xml @xml
9 июн 13, 13:01    [14411238]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить