|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Опертор IN применяемый к параметру
задача такая :
есть текс скл запроса в свойстве скл ADOquery. (access) Там есть оператор In , а что будет под оператором ин - это уже должно динамически меняться, то есть по сути определяться через параметр. Проблема следующая неясно как корректно задавать такой параметр т.е. возможно какая то определенная орфография должна быть. В аксесе все просто IN (a,b,c) ВОТ так в делфи работает Код:
datamodule2.statQ.sql.Add('select sum(price*qnt) as total1') ; datamodule2.statQ.sql.Add('from buy') ; datamodule2.statQ.sql.Add('where ID_buy in (:listID)' ) ; datamoduleunit.DataModule2.statq.Parameters.ParamByName('listID').Value:='120'; А вот так уже не работает Код:
datamoduleunit.DataModule2.statq.Parameters.ParamByName('listID').Value:='120,222'; Как тут быть? Заранее спасибо Последний раз редактировалось Taddy28, 09.04.2013 в 16:09. |
#2
|
||||
|
||||
строку
Код:
'where ID_buy in ()' Код:
datamodule2.statQ.sql.Add Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#3
|
||||
|
||||
Угу, для IN нельзя параметром передавать диапазон значений. Потому текст запроса придется формировать динамически.
Но можно вот так извернуться, создав временную таблицу для значений: Код:
create table #ListID (ID int) Код:
select sum(price*qnt) as total1 from buy inner join #ListID on buy.ID=#ListID.ID Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
|||
|
|||
Не уверен что Access поддерживает временные таблицы... (хотя может и ошибаюсь).
Пс. как писалось выше динамический запрос Вам поможет. Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#5
|
||||
|
||||
Поддерживает, куда же без них
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |