-
Необходимо написать простой запрос (являющийся частью другого скрипта), возвращающий некоторый набор данных. Ну, что-то вроде такого:
select <somefields> from <sometable>
where recid in (<values set>).
Проблема в том, что этот <values set> должен формироваться предварительно в самом скрипте, тоесть передать его извне в виде параметра из дельфийского кода нельзя. А вот как это сделать в скрипте - может кто подскажет. Заранее спасибо.
-
каки везде. конкатенацией строк.
-
declare @aSQL varchar(1000)
Set @aSQL='Select * from Table'
exec(@aSQL) Ну а в свою переменную в динамике можешь чё хошь напихать. Глваное за размерность varchar не вылези
-
Да, забыл сказать, что поле recid имеет тип char(16) Это я понимаю, конкатенацией, но не получается. Может я что не так делаю? Покажите пожалуйста образец. Следует учитывать, что значения должны быть в кавычках!! То есть результирующий запрос должен получиться типа
select <somefields> from <sometable>
where recid in ('a', 'b', 'c', 'd' ...)
-
'''
-
> Ega23 ©
Не понял...
-
> Ega23 © (28.02.08 16:19) [4] > > '''
Лучше QuotedStr
-
> [0] harisma (28.02.08 16:10)
Заполни значениями временную таблицу и соедини с ней основную.
-
То есть результирующий запрос должен получиться типа
а какой типа получается?
-
> Лучше QuotedStr формирование в скрипте, в сервере mssql... там тоже есть? видимо отстал от жизни.
-
> harisma (28.02.08 16:22) [5] > > > > Ega23 © > > Не понял... >
В коде программы заключи в кавычки.. в чем проблема? а почему > Проблема в том, что этот <values set> должен формироваться > предварительно в самом скрипте, тоесть передать его извне > в виде параметра из дельфийского кода нельзя. ?
-
> Лучше QuotedStr
В TSQL появилось QuotedStr????? Иншалла!!!
-
> Sergey13 © (28.02.08 16:23) [7] > > > [0] harisma (28.02.08 16:10) > > Заполни значениями временную таблицу и соедини с ней основную. >
Так нельзя. Условия дальнейшего использования сформированного скрипта не позволяют
>Reindeer Moss Eater © (28.02.08 16:23) [8]
>То есть результирующий запрос должен получиться типа
>а какой типа получается?
А никакой
-
> sniknik © (28.02.08 16:24) [9] > > > Лучше QuotedStr > формирование в скрипте, в сервере mssql... там тоже есть? > видимо отстал от жизни. >
Не понял просто вопроса автора..Либо понял не так как ты...Я недавно спрашивал, как объединить удаленный MS SQL и мои данные из FoxPro.. в итоге в проге выбрал что нужно из БД Foxа, сформировал скрипт в проге и все работает... ну, теряю 3-5 сек(при первом подключении к фоксу)..:-)
-
> Так нельзя. а как/что можно? и зачем? огласите весь список... а то получается разговор слепого с глухим.
-
> В коде программы заключи в кавычки.. в чем проблема?
Не получается. Смотрите, я пишу вот так: declare @Str varchar(1000) set @Str = '''F09A7082701AA440''' + ',' + '''F091FEB302FBA040''' + ',' + '''F081008347F5A240''' но результат выполнения скрипта - пустое множество, хотя я точно знаю, что записи с такими значениями ЕСТЬ. Может все же я неправильно формирую значение @Str или неправильно его подставляю?
select <somefields> from <sometable>
where recid in (@Str)
?
-
мне вот это не понятно
> Проблема в том, что этот <values set> должен формироваться > предварительно в самом скрипте,
- кто/что его формирует ? само по себе как-то ?
-
> Виталий Панасенко(дом) (28.02.08 16:40) [16] > > мне вот это не понятно > > > Проблема в том, что этот <values set> должен формироваться > > предварительно в самом скрипте, > > - кто/что его формирует ? само по себе как-то ?
Он формируется из курсора.
-
> Он формируется из курсора. ? это же готовый список для Sergey13 © (28.02.08 16:23) [7] > Заполни значениями временную таблицу и соедини с ней основную. даже создавать временную и заполнять не надо, вместо курсора запрос и соединяй...
-
Это я уже понял...Действительно, не пашет в таком виде.Проверил на стандартной БД Northwind...
|