Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Динамическое формирование списка значений для выборки [D5, MSSQL]


Страницы:   1 2

harisma ©   (2008-02-28 16:10:00) 

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


select <somefields> from <sometable>
where recid in (<values set>).


Проблема в том, что этот <values set> должен формироваться предварительно в самом скрипте, тоесть передать его извне в виде параметра из дельфийского кода нельзя. А вот как это сделать в скрипте - может кто подскажет.
Заранее спасибо.


Виталий Панасенко(дом)   (2008-02-28 16:26:00) [21]


> harisma   (28.02.08 16:22) [5]
>
>
> > Ega23 ©
>
> Не понял...
>

В коде программы заключи в кавычки.. в чем проблема? а почему
> Проблема в том, что этот <values set> должен формироваться
> предварительно в самом скрипте, тоесть передать его извне
> в виде параметра из дельфийского кода нельзя.
?


sniknik   (2008-02-28 16:24:00) [22]

> Лучше QuotedStr
формирование в скрипте, в сервере mssql... там тоже есть? видимо отстал от жизни.


Reindeer Moss Eater   (2008-02-28 16:23:00) [23]

То есть результирующий запрос должен получиться типа

а какой типа получается?


Sergey13   (2008-02-28 16:23:00) [24]

> [0] harisma   (28.02.08 16:10)

Заполни значениями временную таблицу и соедини с ней основную.


Виталий Панасенко(дом)   (2008-02-28 16:22:00) [25]


> Ega23 ©   (28.02.08 16:19) [4]
>
> '''

Лучше QuotedStr


harisma   (2008-02-28 16:22:00) [26]


> Ega23 ©

Не понял...


Ega23   (2008-02-28 16:19:00) [27]

'''


harisma   (2008-02-28 16:18:00) [28]

Да, забыл сказать, что поле recid имеет тип char(16)

Это я понимаю, конкатенацией, но не получается. Может я что не так делаю?
Покажите пожалуйста образец. Следует учитывать, что значения должны быть в кавычках!! То есть результирующий запрос должен получиться типа

select <somefields> from <sometable>
where recid in ('a', 'b', 'c', 'd' ...)


Ega23   (2008-02-28 16:13:00) [29]

declare @aSQL varchar(1000)
Set @aSQL='Select * from Table'
exec(@aSQL)


Ну а в свою переменную в динамике можешь чё хошь напихать. Глваное за размерность varchar не вылези


Reindeer Moss Eater   (2008-02-28 16:12:00) [30]

каки везде. конкатенацией строк.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо