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

Откуда: г.Новочеркасск, Ростовская обл.
Сообщений: 453
идея такая: есть параметр строковый длиною N - '01011101010001001'

нужно создать постоянный массив A[1..N] строк с именами полей селекта
A[1]='ТАблица1.Поле1' A[2]='Таблица2.Поле1' .. A[N]
потом перебрать параметр N и если N[i]='1' то к @текст:=@текст:+N[i]

Надеюсь объяснил понятно. Может примерчик есть?

PS. На дельфи напишу без проблем, на SQL такое не приходилось писать
16 май 11, 15:07    [10658881]     Ответить | Цитировать Сообщить модератору
 Re: помогите с сохраненкой(динамический select)  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
Я извиняюсь, а на T_SQL что-то писал?
А то фраза "нужно создать постоянный массив A[1..N]" глаза режет...
16 май 11, 15:15    [10658947]     Ответить | Цитировать Сообщить модератору
 Re: помогите с сохраненкой(динамический select)  [new]
iljy
Member

Откуда:
Сообщений: 8711
ВячеславЛ,

как-то так.
declare @Fields table (id int identity primary key, Name varchar(30))

declare @s varchar(50) = '01011101010001001'

insert @Fields values
('ТАблица1.Поле1'), ('Таблица2.Поле1'),
('ТАблица1.Поле2'), ('Таблица2.Поле2'),
('ТАблица1.Поле3'), ('Таблица2.Поле3'),
('ТАблица1.Поле4'), ('Таблица2.Поле4'),
('ТАблица1.Поле5'), ('Таблица2.Поле5'),
('ТАблица1.Поле6'), ('Таблица2.Поле6'),
('ТАблица1.Поле7'), ('Таблица2.Поле7'),
('ТАблица1.Поле8'), ('Таблица2.Поле8'),
('ТАблица1.Поле9'), ('Таблица2.Поле9')

declare @res varchar(8000)

set @res = substring((select ',' + Name from @Fields
where SUBSTRING(@s, id,1) = '1'
for xml path('')),2,8000)

select @res
16 май 11, 15:15    [10658949]     Ответить | Цитировать Сообщить модератору
 Re: помогите с сохраненкой(динамический select)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31964
ВячеславЛ
Надеюсь объяснил понятно.
Не очень.

Зачем "нужно создать постоянный массив A[1..N]"
Может, это в таблице держать?
Курсовик?

Вы бы пример данных подготовили, чтоб можно было вам запрос написать.
16 май 11, 15:15    [10658951]     Ответить | Цитировать Сообщить модератору
 Re: помогите с сохраненкой(динамический select)  [new]
ВячеславЛ
Member

Откуда: г.Новочеркасск, Ростовская обл.
Сообщений: 453
У меня готовый запрос, но выбираются около 70 полей, и это не предел. Хочу, чтобы пользователь в программе выбирал какие ему нужны поля, сохраняя все это в ини файл(вида '0010100111110100...'), т.к. пользователей очень много и их пожелания касаемо полей могут быть непредсказуемые...
Вот и извращаюсь.
16 май 11, 15:21    [10658999]     Ответить | Цитировать Сообщить модератору
 Re: помогите с сохраненкой(динамический select)  [new]
Начинающий SQL 2008
Member

Откуда:
Сообщений: 438
ВячеславЛ,
PS. На дельфи напишу без проблем
Я тоже на Delphi пишу. Давай сюда код.
16 май 11, 15:25    [10659040]     Ответить | Цитировать Сообщить модератору
 Re: помогите с сохраненкой(динамический select)  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
ВячеславЛ
У меня готовый запрос, но выбираются около 70 полей, и это не предел. Хочу, чтобы пользователь в программе выбирал какие ему нужны поля, сохраняя все это в ини файл(вида '0010100111110100...'), т.к. пользователей очень много и их пожелания касаемо полей могут быть непредсказуемые...
Вот и извращаюсь.
Пользователь выбирает поля в клиентском приложении?
Тогда что же мешает этому приложению сформировать SELECT именно выбранных полей из таблиц?
И НЕДИНАМИЧЕСКИЙ запрос отправить на сервер?
16 май 11, 15:25    [10659046]     Ответить | Цитировать Сообщить модератору
 Re: помогите с сохраненкой(динамический select)  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Единственный законный способ доступа к полям таблиц - по их именам!
Всякие там индексы - от лукавого.
16 май 11, 15:27    [10659068]     Ответить | Цитировать Сообщить модератору
 Re: помогите с сохраненкой(динамический select)  [new]
Glory
Member

Откуда:
Сообщений: 104751
ВячеславЛ
У меня готовый запрос, но выбираются около 70 полей, и это не предел. Хочу, чтобы пользователь в программе выбирал какие ему нужны поля, сохраняя все это в ини файл(вида '0010100111110100...'), т.к. пользователей очень много и их пожелания касаемо полей могут быть непредсказуемые...
Вот и извращаюсь.

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

Сообщение было отредактировано: 16 май 11, 15:30
16 май 11, 15:30    [10659097]     Ответить | Цитировать Сообщить модератору
 Re: помогите с сохраненкой(динамический select)  [new]
ВячеславЛ
Member

Откуда: г.Новочеркасск, Ростовская обл.
Сообщений: 453
Glory,

Кодирую только для отображения/скрытия настроенных в дизайнтайме столбцов, хотел к этому и привязать формирование запроса.
Хотя наверное, буду селект формировать в дельфи.

Но, не люблю в дельфи писать запросы, т.к. проще отредактировать сохраненку, чем лезть в программу, перекомпиливать, просить админа, чтобы выгрузил программу у всех пользователей и .т.д.
16 май 11, 15:35    [10659159]     Ответить | Цитировать Сообщить модератору
 Re: помогите с сохраненкой(динамический select)  [new]
Glory
Member

Откуда:
Сообщений: 104751
ВячеславЛ
Glory,

Кодирую только для отображения/скрытия настроенных в дизайнтайме столбцов, хотел к этому и привязать формирование запроса.
Хотя наверное, буду селект формировать в дельфи.

Но, не люблю в дельфи писать запросы, т.к. проще отредактировать сохраненку, чем лезть в программу, перекомпиливать, просить админа, чтобы выгрузил программу у всех пользователей и .т.д.

Зачем куда то лезть и перекомпилировать, если все, что нужно, это передать строку с _именами полей_ ?
16 май 11, 15:47    [10659305]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить